当我编写返回一组项目的 DAL 或其他代码时,我是否应该始终使用 return 语句:
public IEnumerable<FooBar> GetRecentItems()
or
public IList<FooBar> GetRecentItems()
目前,在我的代码中,我一直在尝试尽可能多地使用 IEnumerable,但我不确定这是否是最佳实践?这似乎是正确的,因为我返回了最通用的数据类型,同时仍然描述了它的作用,但也许这样做是不正确的。
框架设计指南推荐使用该类收藏当您需要返回可由调用者修改的集合或只读集合用于只读集合。
这比简单的原因更受欢迎IList
就是它IList
不通知调用者其是否为只读。
如果您返回一个IEnumerable<T>
相反,某些操作对于调用者来说执行起来可能有点棘手。此外,您不再为调用者提供修改集合的灵活性,这是您可能想要或可能不想要的。
请记住,LINQ 包含一些技巧,并将根据执行的类型优化某些调用。因此,举例来说,如果您执行Count
底层集合是一个列表,它不会遍历所有元素。
就我个人而言,对于 ORM 我可能会坚持使用Collection<T>
作为我的返回值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)