何时返回 IEnumerable<T>

Dan*_*nil 4 .net c# collections ienumerable

我应该IEnumerable<T>只在懒惰评估的情况下从方法和属性返回吗?

你有任何人的模式,当你返回IEnumerableICollectionIList

Mat*_*ton 5

每当调用者只需要从头到尾遍历集合时,我就会返回 IEnumerable。通过使用尽可能少的接口,我确保调用代码不会太紧耦合,从而更容易在以后更改方法或属性中的代码。如果它仍然返回 IEnumerable,则没有其他人需要关心。如果它之前返回 List 并且新方法在内部使用 HashSet 来表示事物,那么突然间许多其他事物也必须改变。

因此,我总是更喜欢返回集合接口而不是具体的集合,除非在调用代码确实需要确切知道它正在处理的集合类型的情况下。我考虑调用者需要能够执行的操作,并找到支持它们的最小接口。


归档时间:

查看次数:

627 次

最近记录:

14 年 前