簡體   English   中英

采集 <T> :為什么同時實現IEnumerable和IEnumerable <T> ?

[英]Collection<T>: why does it implement both IEnumerable and IEnumerable<T>?

我知道完全相同的問題出現在StackOverflow上 ,但是它並不能完全回答我的查詢。

如果ICollection<T>實現IEnumerable<T> (擴展了IEnumerable ,為什么Microsoft的程序員將IEnumerable添加為ICollection<T>實現的接口?

(在語義上和實現上)與編寫ICollection<T> : IEnumerable<T>嗎?

它說它實現了IEnumerable 因為它實現了IEnumerable

IEnumerable<T>繼承IEnumerable ,但顯然不能提供任何實現。 實現IEnumerable<T>類也必須實現IEnumerable ,無論它們是否明確聲明這樣做。

class Foo : IEnumerable<T> 
class Foo : IEnumerable<T>, IEnumerable

無論哪種情況,都可以實現兩個接口的成員。 第二類的定義對於查看類和/或文檔的人員來說是顯而易見的,這是一件好事。 沒有經驗的讀者或其他不了解信息的讀者可能不知道IEnumerable<T>IEnumerable與它一起帶來。 他們可能不知道可以在期望IEnumerable地方使用實現IEnumerable<T>的類。 這只是向讀者提供了更多信息,這平均而言只是一件好事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM