我找到了很多关于IEnumerator
,IEnumerable
,ICollection
,IList
及其通用副本的文档和建议。遗憾的是,我还没有找到解释整个接口层次结构的教程或书籍,这些接口的通用实现和是每种类型的最佳用法。
关于泛型,它们的界面以及C#中推荐用法的例子,你最了解的是什么?
答案 0 :(得分:3)
我了解它们的主要方式就是查看它们的界面。
继承是这样的:
IList:ICollection:IEnumerable
当你查找IEnumerable的界面时,请注意它只有最低限度才能循环遍历一堆项目。它没有计数或其他任何东西。 IEnumerable工作得很好,即使你正在看的只是一条通过电线的流。
ICollection添加了Count。如果你正在实现某种类型的集合,并且如果很容易知道它的大小,那么你应该实现它。在这种情况下,通用接口有点不同。的ICollection< T>还有通过添加和删除成员来修改集合的方法。无序集合将是ICollection的良好候选者。
IList添加了通过索引获取和设置集合成员的功能。当项目的顺序很重要时使用此选项。当您有索引时,您可以执行交换第4和第5项以更改其顺序的操作。
答案 1 :(得分:0)
你错过了一个:)
IDictionary :IList:ICollection:IEnumerable