在C#中维护使用指令的“干净”列表有什么好处?

我知道VS2008具有删除和排序function,可以使用指令进行清理,Resharper也是如此。 除了你的代码“干净”并消除了引用未来可能不存在的命名空间的问题,维护一个“干净”的使用指令列表有什么好处?

更少的代码? 编译时间更快?

对我来说,它基本上都是关于减少噪音(加上让Resharper快乐!)。

我相信编译时间的任何改进都会很小。

如果你总是只有你需要的using指令,并且总是对它们进行适当的排序,那么当你来区分两个版本的代码时,你永远不会看到无关的变化。

此外,如果你有一套整齐的使用指令,那么任何查看代码的人都可以通过查看using指令大致了解将要使用的内容。

没有运行时影响。 这纯粹是编译时间。 它可能会影响以下内容:

  1. 命名空间冲突的机会减少
  2. 代码文件中的“噪音”更少
  3. 非常明确地指出文件中期望的命名空间和可能的类型
  4. 使用菜单删除未使用和排序意味着在开发人员之间使用语句更加一致。 愚蠢检查的机会更少,只是为了修复它。
  1. 减少噪音。
  2. 明确期望使用什么类型(“我的UI层依赖于System.Net。哇,为什么?”)
  3. 清洁参考:如果你有最小的using语句集,你可以清理你的引用。 我经常看到开发人员只是继续将引用投入到他们的项目中,但是当他们不再需要时他们永远不会删除它们。 如果您没有任何实际需要引用的内容(以及using语句计数),那么清理引用就变得微不足道了。 (为什么要这样做?在已经分解为组件的大型系统中,它将通过消除未使用的deps来简化构建依赖性。)

对我来说,一开始使用清晰的使用语句列表可以很好地理解所期望的类型。

几年前,当我第一次安装ReSharper(18项目解决方案)时,我看到了编译时间的不错增长。 从那以后,它只是保持清洁。

我无法谈论编译时间和性能方面的好处,但如果您最小化使用声明,则命名空间冲突的可能性会降低。 如果您使用多个第三方库,这一点尤为重要。

有一个编译时差异:当您删除引用但在代码中仍然有一个using指令时,则会出现编译错误。 因此,使用一个干净的using指令列表可以更容易地删除未使用的引用。

通常编译器会删除未使用的引用,但我不知道代码中使用时是否有效。