【发布时间】:2018-04-01 18:44:47
【问题描述】:
如果我想将 List 作为方法的参数,Resharper 会提示使用 IList 接口可能是一个更好的主意。如果我用 IList 替换 List,Resharper 建议使用 IEnumerable。在 Java 中,我也会将 List 接口而不是 ArrayList 作为参数。但是使用 iEnumerable 作为参数真的很好看吗?如果不需要 IList 或 List 的功能,这是使用 IEnumerable 的好习惯吗?
【问题讨论】:
-
“如果不需要 IList 或 List 的功能,这是使用 IEnumerable 的好习惯吗?” -- 是的。
-
是的,因为它打开了您可以传递的内容,例如数组或延迟加载的 Linq 查询。
-
提供可重用的方法总是好的。如果您要求所有泛型集合的基本接口,您可以将此方法用于多种类型,而不仅仅是列表。
IList<T>涵盖列表和数组,但如果您不需要IList<T>的方法,您可以使用IEnumerable<T>。 -
如果您的问题得到了回答,请将其标记为这样。感谢您的支持。
标签: c# list methods arguments ienumerable