我知道完全相同的問題出現在這裏StackOverflow,但它不完全回答我的查詢。集合<T>:它爲什麼既實現IEnumerable又實現IEnumerable <T>?
如果ICollection<T>
工具IEnumerable<T>
,它擴展IEnumerable
,爲什麼從微軟程序員添加IEnumerable
作爲該ICollection<T>
實現的接口?
難道這不就是(語義和執行方面的明智),就像簡單地寫ICollection<T> : IEnumerable<T>
一樣嗎?
而像IlDasm和Reflector這樣的工具傾向於顯示第二更長的形式。不管它是如何寫的。 – 2012-02-17 18:55:46
好的,所以它是爲了可讀性而不是提供任何語義/編程差異,是否正確? – Bober02 2012-02-17 19:18:35
非常。它是可選的* list *附加的接口。無論哪種方式都需要實現。 – 2012-02-17 19:34:38