【问题标题】:c# using declarations - more = good or bad?c# 使用声明 - 更多 = 好还是坏?
【发布时间】:2011-04-07 19:49:34
【问题描述】:

编辑错别字

你好,

这可能是一个愚蠢的问题,但如果它有助于我遵循最佳实践,我不在乎:P

假设我想使用 System.Data 命名空间中的类和方法...以及 System.Data.SqlClient 命名空间。

两者都参与更好还是只参与父母,即...

using System.Data
using System.Data.SqlClient

或者只是……

using System.Data

我猜更重要的是,它是否对应用程序有任何影响 - 或者它只是一个偏好问题(声明父母和孩子都可以保持代码的其余部分整洁,但这会损害应用程序的速度是因为它拉入了整个父命名空间,然后是一个子命名空间?)

希望华夫饼不要太多

【问题讨论】:

  • using 在 C 中的行为与 #include 不同,其中包含不必要或重复的头文件可能会对编译性能造成显着影响(尽管大多数头文件会专门具有“包含保护”以避免您所描述的内容。)在 C# 中,using 纯粹是帮助 IDE 和编译器解析类型名称的一种方式。

标签: c# namespaces using


【解决方案1】:

它对编译后的代码没有任何的影响。

就我个人而言,我喜欢只拥有我正在使用的那些(没有双关语),但如果你想拥有 100 个,它可能会稍微减慢编译器的速度,但它不会改变编译后的代码 (当然,假设没有命名冲突)。

这只是一种让您在谈论 X.Y.Z 时编写 Z...

如果您要使用来自两个不同命名空间的类型(并且这里的层次结构很大程度上是虚幻的),我个人会同时使用 using 指令。

【讨论】:

  • 谢谢,是的,这方面的大部分信息似乎只是 Intellisense 会减慢速度
  • @beardwizzle 充斥着各种东西。我不介意这是否需要一点时间,好像我需要知道我已经在考虑它了,但是天哪,那里的课程堆积如山。 VS 和 Resharper 都可以帮助您保持清洁(除了 resharper 之外,还有一个附加功能可以让您在保存时删除和排序使用,所以它不仅适用于您拥有它的时候)
【解决方案2】:

点击Organize->Remove Usings,Visual Studio 会告诉你正确答案。

【讨论】:

  • 这似乎在 VS 2012 下发生了变化 - msdn.microsoft.com/en-us/library/bb514115。对我有用的方法是右键单击代码编辑器内的任意位置,指向 Organize Usings,然后单击 Remove Unused Usings。
【解决方案3】:

首先,它对应用程序没有影响。您可以通过查看编译器生成的 CIL 代码来证明这一点。所有类型都在 CIL 中使用其完整的规范名称声明。

导入命名空间只是帮助您编写更短代码的语法糖。在某些情况下,也许你有一个非常大的代码文件并且一次只引用特定命名空间中的一个类型,你可能会选择 not 来导入命名空间,而是使用完全限定的名称,以便开发人员清楚该类型的来源。不过,这并没有什么区别。

【讨论】:

    【解决方案4】:

    表达你的意思并以简洁明了的代码为目标——这才是最重要的。这对应用程序没有影响,只会对您、您的同事和您未来的员工大脑产生影响。

    【讨论】:

      【解决方案5】:

      在 VS 中输入类型名称并按 Ctrl + .,Enter 时使用任何发生的情况。

      【讨论】:

        猜你喜欢
        • 2013-11-29
        • 1970-01-01
        • 1970-01-01
        • 2011-12-19
        • 1970-01-01
        • 2012-01-19
        • 1970-01-01
        • 1970-01-01
        • 2010-12-19
        相关资源
        最近更新 更多