根据MSDN docs,System.Array实现ICollection,但System.Array不提供Count属性(当然你总是可以使用LINQ Count()扩展方法,但是没有这个名字的属性)。怎么会这样?不需要数量吗?
答案 0 :(得分:8)
int ICollection.Count
{
get
{
return Length;
}
}
您可以在MSDN上阅读有关显式接口实现的更多信息。
答案 1 :(得分:2)
来自Array.ICollection.Count Property - MSDN
此成员是显式接口成员实现。它可以 仅在将Array实例强制转换为a时才使用 T:System.Collections.ICollection接口。
答案 2 :(得分:1)
来自文档:
“从.NET Framework 2.0开始,Array类实现System.Collections.Generic.IList< T>,System.Collections.Generic.ICollection< T>和System.Collections.Generic.IEnumerable< T>通用接口。这些实现在运行时提供给数组,因此对于文档构建工具是不可见的。因此,通用接口不会出现在Array类的声明语法中,并且没有参考主题只能通过将数组转换为通用接口类型(显式接口实现)才能访问的接口成员。将数组转换为其中一个接口时要注意的关键是添加,插入或删除元素的成员抛出NotSupportedException异常“。