考虑TranslateAllCoords
静态函数:值类型的可变性
static class CoordinateTransformation
{
public static void TranslateAllCoords(ref int x, ref int y, ref int z,
int amount)
{
x+=amount;
y+=amount;
z+=amount;
}
}
然后,后来在代码中,你有:
int x=0, y=0, z=0;
...
CoordinateTransformation.TranslateAllCoords(ref x, ref y, ref z, 5);
...
但是,通过调用TranslateAllCoords你实际上是修改的值类型(即,整数坐标)并且通常值类型应该是不可变的。是否有一些规则在这里被打破,或者这是一个完全有效的构造,通过修改仅内置的值类型来解决“值类型应该是不可变的”构造?
感谢您的明确解释! – 2010-11-12 16:34:18