视觉工作室-保持一个“;“干净”;C#中使用指令的列表

本文关键字:列表 指令 干净 工作室 视觉 一个 | 更新日期: 2023-09-27 17:48:53

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

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

视觉工作室-保持一个“;“干净”;C#中使用指令的列表

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

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

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

我相信编译时间的任何改进都是微乎其微的。

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

  1. 命名空间冲突的可能性较小
  2. 减少代码文件中的"噪音"
  3. 非常明确地说明文件中应包含哪些命名空间和可能的类型
  4. 使用菜单删除未使用的和排序意味着与开发人员之间使用语句更加一致。不太可能只是为了解决问题而愚蠢地办理入住手续
  1. 噪音更小
  2. 对使用的类型有明确的期望("我的UI层依赖于System.Net。哇,为什么?")
  3. 更干净的引用:如果你有最小的using语句集,你可以清理你的引用。我经常看到开发人员只是不断地向他们的项目中添加引用,但当不再需要它们时,他们从不删除它们。如果您没有任何实际需要引用的内容(并且using语句计数),那么清理引用就变得微不足道了。(你为什么要这么做?在已经分解成组件的大型系统中,它将通过消除未使用的dep来简化构建依赖关系。)

对我来说,一开始就列出一个干净的using语句列表可以很好地理解预期的类型。

几年前,当我第一次安装ReSharper(在一个18项目的解决方案上)时,我看到了编译时间的可观增长。从那时起,它只是为了保持清洁。

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

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

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