2013-02-19 97 views
1

我已经在MSDN上采取了旁观IList<T>ICollection<T>的机会,看到这两个接口的定义是:从IEnumerable<T>为什么IList的<T>继承了IEnumerable <T>和IEnumerable再次

​​

注意ICollection<T>继承和IEnumerable,没关系。 IList<T>继承自ICollection<T>,但为什么IList<T>必须再次继承IEnumerable<T>IEnumerable

这是否有任何理由?

+0

我相信这是为了兼容性,因为IEnumerable 附带版本2.0 – V4Vendetta 2013-02-19 05:23:07

回答

5

该文档是以这种方式生成的,因此您可以查看类型实现的接口,而无需通过接口继承层次结构追踪传递链接。

+0

我同意。没有结构性的原因,除了澄清恕我直言。 – 2013-02-19 05:18:00

+0

这只是文档。如果您检查mscorlib程序库,例如与dotPeek那么你可以看到,在IList中接口的接口再次列出如下: – 2013-02-19 05:26:16

+0

不是真的,如果你尝试实施'ILIST '你的确会得到,需要两个版本的'GetEnumerator' – V4Vendetta 2013-02-19 05:27:08

相关问题