您可能知道,C#中的数组实现IList<T>了其他接口。但不知何故,他们这样做没有公开实现Count属性IList<T>!数组只有一个Length属性。这是一个明显的例子,C#/ .NET打破了自己关于接口实现的规则,还是我错过了什么?
3 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
IList<T>.Count是明确实现的:
int[] intArray = new int[10];
IList<int> intArrayAsList = (IList<int>)intArray;
Debug.Assert(intArrayAsList.Count == 10);
这样做是为了当你有一个简单的数组变量时,你没有这两个Count并且Length直接可用。
通常,当您希望确保可以以特定方式使用类型时,使用显式接口实现,而不强制该类型的所有使用者以这种方式考虑它。
编辑:糟糕,糟糕的回忆那里。ICollection.Count明确实施。该通用IList<T>名称由Hans descibes处理。
- 3 回答
- 0 关注
- 749 浏览
添加回答
举报
0/150
提交
取消