rkr*_*ter 4 .net arrays arraylist
ArrayList内部是否使用数组?如果我们使用默认构造函数(new ArrayList()),这是一个空数组吗?谢谢.
是的,它确实.验证这一点的最简单方法之一是查看源代码.您既可以使用参考源,也可以使用.NET Reflector来反编译.NET DLL.
这是ArrayList的相关部分,来自Reflector:
public class ArrayList : IList, ICollection, IEnumerable, ICloneable
{
static ArrayList()
{
emptyArray = new object[0];
}
public ArrayList()
{
this._items = emptyArray;
}
private object[] _items;
private static readonly object[] emptyArray;
// etc...
}
Run Code Online (Sandbox Code Playgroud)
你不应该依赖于这种情况.这是一个实现细节,可能会在.NET的未来版本中发生变化(尽管可能不会).对于新代码,您应该考虑使用List<T>而不是ArrayList.