2013-02-19 54 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

相關問題