System.Array
类实现ICollection
接口。这个接口有一个名为Count
的公共属性,用于获取数组中元素的数量。
假设我声明了一个数组并访问它的属性:
Array numbers = Array.CreateInstance(typeof(int), 10);
Console.WriteLine(numbers.Count);
您会期望屏幕上看到10。 但是,在数字后面添加句点后,我无法看到
Count
属性。 然而,有一个名为Length
的属性。这是为什么呢?更新: 这是因为显式接口实现。 由于有另一个类似于我的问题,我决定重新表述一下。 为什么要采取设计决策来明确实现特定属性?已经有一个具有相同功能的属性
Length
。那么为什么要费力地提供明确实现的Count
?
ICollection
。 - Tim Schmelterint[] number = new int[10];
呢? - PhonicUKArray.CreateInstance
是可以的,但不应使用Array
类型来处理数组。如果您尝试访问此数组的元素,您将得到object
而不是int32
。这将导致装箱http://msdn.microsoft.com/en-us/library/yz2be5wk(v=vs.80).aspx。装箱是不好的。 - Dmitrii Dovgopolyi