保持“安全”的好处是什么;“干净”;在C#中使用指令的列表?

保持“安全”的好处是什么;“干净”;在C#中使用指令的列表?,c#,visual-studio,resharper,using,C#,Visual Studio,Resharper,Using,我知道VS2008具有删除和排序功能,可以使用指令进行清理,Resharper也是如此。除了代码“干净”和消除引用名称空间的问题(将来可能不存在)之外,维护使用指令的“干净”列表还有什么好处 更少的代码? 更快的编译时间?对我来说,基本上都是为了减少噪音(再加上让Resharper开心!) 我相信编译时间的任何改进都是微不足道的。对我来说,一个清晰的开始使用语句列表可以很好地理解预期的类型。几年前,当我第一次安装ReSharper(在一个18项目解决方案上)时,我看到编译时间有了相当大的提高。从

我知道VS2008具有删除和排序功能,可以使用指令进行清理,Resharper也是如此。除了代码“干净”和消除引用名称空间的问题(将来可能不存在)之外,维护使用指令的“干净”列表还有什么好处

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

对我来说,基本上都是为了减少噪音(再加上让Resharper开心!)


我相信编译时间的任何改进都是微不足道的。

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

几年前,当我第一次安装ReSharper(在一个18项目解决方案上)时,我看到编译时间有了相当大的提高。从那时起,它只是保持它的干净。

如果您总是只有您需要的using指令,并且总是对它们进行适当的排序,那么当您区分两个版本的代码时,您将永远不会看到不相关的更改


此外,如果您有一组简洁的using指令,那么任何人只要看一下using指令,就可以大致了解将要使用的代码。

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

不会影响运行时。这纯粹是编译时。它可能会影响以下方面:

  • 命名空间冲突的可能性较小
  • 减少代码文件中的“噪音”
  • 非常明确地说明文件中需要哪些名称空间和可能的类型
  • 使用菜单删除未使用的语句并进行排序意味着在开发人员中使用语句更为一致。不太可能只是为了解决问题而进行愚蠢的签入
  • 噪音小
  • 明确使用的类型(“我的UI层取决于System.Net.Wow,为什么?”)
  • Cleaner引用:如果有最小的using语句集,则可以清理引用。我经常看到开发人员只是不断地向他们的项目中抛出引用,但当不再需要它们时,他们从不删除它们。如果您没有任何实际需要引用的内容(并且using语句很重要),那么清理引用就变得很简单了。(为什么要这样做?在已分解为组件的大型系统中,它将通过消除未使用的DEP来简化构建依赖关系。)

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


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

    Hmmm,有人编辑了我的标题。最初的一个问题是,“你是否沉迷于在c#中使用语句来消除冗余?”为了准确起见,我将“语句”改为“指令”。Using语句是在finally块中调用Dispose的语句。你说的是使用指令,不是真的。我完全忽略了顶部的using块,因为它们有很多噪音。如果你知道每个using指令都在使用,它们就不是噪音。即使你真的认为它们是噪音,如果你不控制它们,它们仍然会在差异上给出误报。是的,我只是为了让Resharper高兴而去除它们。:-)