我發現了許多關於IEnumerator
,IEnumerable
,ICollection
,IList
及其通用對應物的文件和建議。可悲的是,我還沒有找到解釋整個接口層次結構的教程或書籍,這些接口的通用實現和是每種類型的最佳用法。什麼是關於泛型及其接口的最佳資源?
什麼是關於泛型,它們的接口以及C#中推薦使用的示例的最佳知識源?
我發現了許多關於IEnumerator
,IEnumerable
,ICollection
,IList
及其通用對應物的文件和建議。可悲的是,我還沒有找到解釋整個接口層次結構的教程或書籍,這些接口的通用實現和是每種類型的最佳用法。什麼是關於泛型及其接口的最佳資源?
什麼是關於泛型,它們的接口以及C#中推薦使用的示例的最佳知識源?
我明白他們的主要方式就是看他們的界面。
繼承是這樣的:
的IList:ICollection的:IEnumerable的
當你仰望的IEnumerable的接口,注意它只有能夠循環通過一堆物品所必需的最低限度。它沒有計數或其他任何東西。 IEnumerable運作良好,即使你正在看的只是一條流過電線的流。
ICollection添加計數。如果你正在實施某種集合,並且容易知道它的大小,那麼你應該實現這個。在這種情況下,通用接口稍有不同。 ICollection <T>也有通過添加和刪除成員來修改集合的方法。一個無序的集合將是ICollection的一個好候選。
IList增加了按索引獲取和設置集合成員的功能。當項目順序顯着時使用此項。當你有索引時,你可以做一些事情,比如交換第4項和第5項來改變它們的順序。
你只是錯過了一個:)
IDictionary的:IList中:ICollection的:IEnumerable的
IDictionary它與其他接口有點不同 - 它似乎只是一個鍵/值對(與ICollection
你應該重新標記這是集合。泛型並不總是用於集合。 – 2008-12-16 06:17:16