如果您查看Stack<T>
.NET 4.0 的内部类,您会注意到有一个“emptyArray”私有静态字段,用于在构造函数内部初始化一个真正的“数组”私有字段。
private T[] array;
private static T[] emptyArray;
private int size;
private int version;
static Stack()
{
Stack<T>.emptyArray = new T[0];
}
public Stack()
{
array = Stack<T>.emptyArray;
size = 0;
version = 0;
}
为什么不直接放this.array = new T[0];
?还有为什么要为大小和版本字段放置初始化笔划,如果您省略这些行,它们无论如何都会被初始化为默认值(0)。