5

在我的项目上开发了一系列 POCO,并且刚刚意识到其中一些不需要该using System;子句。

using <module>;在我的对象或项目上未使用是否有任何性能或尺寸损失?

我的类会因此变得更大、更慢或臃肿,还是编译器/优化器足够聪明来处理这个问题?

4

8 回答 8

5

不,没有性能问题。

这只是一个可读性问题(我建议删除它们)

更多信息: 为什么要使用指令删除不必要的 C#?

于 2012-01-11T17:53:22.913 回答
1

所有的“使用系统;” 语句确实允许您在没有完全限定名称的情况下使用该命名空间。它不会以任何方式影响运行时性能。

于 2012-01-11T17:54:34.003 回答
1

using在代码中包含未使用的语句不会影响运行时性能。它们不会出现在任何形式的已编译 DLL 中(它们确实存在于 PDB 中)。

但是,如果您知道它们是无效的,通常认为删除它们是一种很好的方式。拥有未使用的 usings 本质上是在说明您的代码对一组类型和扩展方法的错误依赖。

确定哪些 usings 未被使用是一个繁琐的过程。我发现最好只安装一个类似的工具PowerCommands并让它完成文件保存工作。

于 2012-01-11T17:54:46.807 回答
0

这既不会带来性能提升,也不会带来打击。

我删除了所有未使用的并将所有使用的使用排序为代码样式(整洁)。您可以通过 Visual Studio 上下文菜单执行此操作(我将其绑定到热键)。

于 2012-01-11T17:54:33.833 回答
0

如果您不使用参考/程序集或扩展功能,例如使用 System.Linq;默认情况下被添加到 VS2010 项目中.. 如果你不使用它.. 只需删除它.. 没有性能问题

于 2012-01-11T17:55:02.127 回答
0

using 指令只是语法糖。

除了边际编译时间差异之外,添加使用引用不会影响性能。

于 2012-01-11T17:56:12.637 回答
0

它绝不会影响编译器的输出或编译程序的性能!

作为个人喜好的一部分,它可以被删除。我个人会推荐它,因为它可以使编译更快(编译器要查找的命名空间更少)并且还可以提高智能感知的性能。

于 2012-01-11T18:02:39.020 回答
0

它对性能没有影响。您可以自行决定保留或删除它。

但是,请考虑保留它System命名空间包含 .NET Framework 中最常用的部分,在文件生命周期的某个时刻,您(或某人)可能最终会需要它。这意味着不可避免地把它放回去,可能是在浪费时间想知道为什么没有系统类存在之后。

于 2020-02-11T16:09:33.583 回答