我在 C# 项目中使用 Visual Studio 2012 Express。我似乎记得在以前版本的 Visual Studio 中情况并非如此,我想知道这是否是一个错误。
在下面的代码中,Empty 是一个静态只读字段,但可以在其构造函数之外使用 Empty.Clear() 进行修改
public struct Box
{
public static readonly float D = float.MaxValue;
public static readonly Box Empty = new Box(new Vector3(D, D, D), new Vector3(-D, -D, -D));
public Vector3 Min;
public Vector3 Max;
public Box(Vector3 min, Vector3 max)
{
Min = min;
Max = max;
}
public void Clear()
{
Min = new Vector3(D, D, D);
Max = -Min;
Empty.Clear(); // I seem to remember this should not be allowed
}
}