如果我想将List作为方法的参数,Resharper会提示使用IList接口可能是一个更好的主意。如果我然后用IList替换List,Resharper建议使用IEnumerable。在Java中,我还将List接口而不是ArrayList作为参数。但是使用iEnumerable作为参数是否真的很好看?如果不需要IList或List的功能,这是使用IEnumerable的好习惯吗?
答案 0 :(得分:8)
这是the article让我改变主意,让我开始遵循
的原则采用最通用的类型,返回最具体的类型
所以回答你的问题
如果不需要IList或List的功能,这是使用IEnumerable的好习惯吗?
是的,
注意:不要过度了!我见过接受IEnumerable
的代码,如果参数不是List
,则会抛出异常。这是愚蠢的。我上面引用的句子意思是“不要求比你需要更多的特异性”