這可能是一個古老的問題:爲什麼IEnumerable<T>
繼承自IEnumerable
?爲什麼IEnumerable <T>從IEnumerable繼承?
這是.NET的做法,但它帶來了一些麻煩。每次我寫一個類實現IEumerable<T>
,我必須寫兩個GetEnumerator()
函數,一個用於IEnumerable<T>
,另一個用於IEnumerable
。
而且,IList<T>
不自IList繼承。
我不知道爲什麼IEnumerable<T>
的設計在其他的方式。
這很有趣......我真的很煩惱,`IList`沒有繼承`IList`,但只要你考慮到它的差異,它開始有意義... –
2009-11-29 01:01:04
這太糟糕了微軟從來沒有定義IReadableByIndex和IReadableByIndex (Of T),可以由IList和IList(Of T)繼承。 IReadableByIndex可以被IReadableByIndex(Of T)毫無困難地繼承,只讀索引集合的方差會非常好。 – supercat 2011-01-16 23:06:01