Resharper说我不应该使用List <T>

Cra*_*aig 26 c# resharper ienumerable list

我有一个方法:

static void FileChangesDetected(List<ChangedFiles> files)
Run Code Online (Sandbox Code Playgroud)

我使用Visual Studio 2010和Resharper.Resharper总是建议我更改List<T>IEnumerable<T>,我想知道为什么会这样.

在方法中,我只是这样做:

 foreach (var file in files)
 { ... }
Run Code Online (Sandbox Code Playgroud)

是否有使用IEnumerable<T>而不是List<T>

Ode*_*ded 29

这一切都与LSP(Liskov替代原则)有关.

基本上,代替使用实现,最好是对抽象进行编码.

在这种特殊情况下,如果你做的是循环在列表中,你可以使用IEnumerable<T>这种方式,你不-因为最简单的抽象使用List<T>,但任何在你的函数集合类型.

这使您的功能更可重用并减少耦合.

  • @cdotlister - 它与资源无关,但与软件设计无关.它更好_design_. (3认同)