14

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

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

4

8 回答 8

18

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

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

于 2008-10-24T21:08:39.480 回答
10

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

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

于 2008-10-24T21:05:39.500 回答
7

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

  1. 命名空间冲突的机会更少
  2. 代码文件中的“噪音”更少
  3. 非常明确地说明文件中预期的名称空间和可能的类型
  4. 使用菜单删除未使用和排序意味着开发人员之间使用语句的一致性更高。减少愚蠢签入的机会只是为了修复它。
于 2008-10-24T21:59:18.660 回答
7
  1. 噪音更小。
  2. 明确期望使用什么类型(“我的 UI 层依赖于 System.Net。哇,为什么?”)
  3. 更清洁的引用:如果您有最少的 using 语句集,则可以清理您的引用。我经常看到开发人员只是不断地向他们的项目中添加引用,但是当不再需要它们时,他们从不删除它们。如果您没有任何实际需要引用的内容(并且 using 语句很重要),那么清理您的引用就变得微不足道了。(您为什么要这样做?在已分解为组件的大型系统中,它将通过消除未使用的依赖项来简化您的构建依赖项。)
于 2008-10-24T22:01:51.667 回答
2

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

于 2008-10-24T21:05:57.863 回答
2

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

于 2008-10-24T21:07:35.707 回答
0

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

于 2008-10-24T21:40:36.373 回答
0

有一个编译时差异:当你删除一个引用,但在你的代码中仍然有一个 using 指令时,你会得到一个编译器错误。因此,拥有一个干净的 using 指令列表可以更轻松地删除未使用的引用。

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

于 2008-10-27T10:10:49.187 回答