C#列出IList或IEnumerable作为参数

时间:2017-10-20 14:50:27

标签: c# list methods arguments ienumerable

如果我想将List作为方法的参数,Resharper会提示使用IList接口可能是一个更好的主意。如果我然后用IList替换List,Resharper建议使用IEnumerable。在Java中,我还将List接口而不是ArrayList作为参数。但是使用iEnumerable作为参数是否真的很好看?如果不需要IList或List的功能,这是使用IEnumerable的好习惯吗?

1 个答案:

答案 0 :(得分:8)

这是the article让我改变主意,让我开始遵循

的原则
  

采用最通用的类​​型,返回最具体的类型

所以回答你的问题

  

如果不需要IList或List的功能,这是使用IEnumerable的好习惯吗?

是的,

注意:不要过度了!我见过接受IEnumerable的代码,如果参数不是List,则会抛出异常。这是愚蠢的。我上面引用的句子意思是“不要求比你需要更多的特异性”