C#中的数组如何部分实现IList <T>?

您可能知道,C#中的数组实现IList<T>了其他接口。但不知何故,他们这样做没有公开实现Count属性IList<T>!数组只有一个Length属性。

这是一个明显的例子,C#/ .NET打破了自己关于接口实现的规则,还是我错过了什么?


喵喵时光机
浏览 727回答 3
3回答

哈士奇WWW

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处理。
打开App,查看更多内容
随时随地看视频慕课网APP