【问题标题】:Is it worth removing "using System" from my files?是否值得从我的文件中删除“使用系统”?
【发布时间】:2012-02-08 02:18:42
【问题描述】:

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

在我的对象或项目上留下未使用的using <module>; 是否会对性能或大小造成任何损失?

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

【问题讨论】:

  • 这是最佳实践之一,删除未使用的命名空间
  • @ashutoshrina 我不知道我是否会将其称为“最佳实践”。它可以增加可读性,但对代码输出没有影响。
  • @Platinum Azure,我也可以编译自己的内核并为自己的目的编写自定义版本的 Linux,但我不这样做。 :-)
  • @Machado:苹果和橙子。我的意思是,当您可以完全自己衡量所有事情时,您不应该要求其他人为您完成工作。
  • @PlatinumAzure,我当然可以这样做。我可以更深入地检查 IL。那不是重点。多亏了这个问题,我得到了一些关于使用以及它如何影响 Intellisense 的很好的答案,但不是输出本身,而且我从其他程序员那里获得了关于编码风格的输入。如果您不喜欢这个问题,请随时投反对票,这是您的权利。

标签: c# .net performance using-declaration


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      没有性能问题。

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

      更多信息请访问: Why should you remove unnecessary C# using directives?

      【讨论】:

      • DIY。编译 2 个版本的代码并比较生成的 IL。
      【解决方案4】:

      using directive 只是语法糖。

      使用引用添加不会影响性能,除了微小的编译时间差异。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

          确定哪些 using 未被使用是一个繁琐的过程。我发现最好只安装像PowerCommands 这样的工具,然后让它完成文件保存工作。

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

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

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

              【讨论】:

                猜你喜欢
                • 2011-04-30
                • 2015-12-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-01-09
                • 1970-01-01
                相关资源
                最近更新 更多