【问题标题】:C# using every namespace in the projectC# 使用项目中的每个命名空间
【发布时间】:2012-11-22 13:07:26
【问题描述】:

在我的每个 .cs 文件中,我都有大量“使用”行,包括其他命名空间,例如:

using Game.Models.Main;
using Game.Models.DataStore;
using Game.Manager.MapManager;
using Game.Network.Player;

如果在每个新的 .cs 文件的开头,我在代码中包含所有现有命名空间的“使用”语句会怎样?这样做有什么缺点吗?喜欢性能还是我想不到的东西?

我为什么要这样做:在 Eclipse 中,您可以按 Ctrl+Space,您将看到以键入的字符开头的定义列表。但是,在 Visual Studio 中,只有当您键入的类位于“使用”命名空间中时,您才能看到这一点。因此,当您编写一个新类时,您必须完整输入所有其他类的名称。

【问题讨论】:

  • 这很简单——只保留需要的用途
  • 只要知道要使用的函数的名称,就可以右键单击,单击Resolve,Visual Studio会为你包含该文件。我建议您不要将所有库都包含在内,因为它(可能?)需要更长的时间来编译。
  • @MadHenchbot 包含文件还是命名空间?文件通常作为引用包含在项目中,并且可以包含多个命名空间。 OP 似乎更关心使用命名空间。
  • 是的,我知道“resolve”这个东西,但它只有在你输入整个东西时才有效,而且它需要使用鼠标,这很不方便

标签: c# namespaces using


【解决方案1】:

这可能会减慢 Visual Studio 的智能感知,但对于编译产品,它不会因为多余的 using 语句而影响生成的二进制文件。

如果要删除多余的 using 语句,可以右键单击 using 语句,然后转到“重构”>“排序和删除”

【讨论】:

    【解决方案2】:

    除了在不同的命名空间中有同名的类(如 System.Drawing.ColorSystem.Windows.Media.Color 中的 Color)之外,没有太大的缺点,而不是添加所有命名空间会导致编译错误或完全改变代码。

    【讨论】:

      【解决方案3】:

      通常您只想包含您正在使用的命名空间。这样可以避免命名冲突和程序员混淆。

      就 IntelliSense 而言,如果您想要其他命名空间中的某些内容,只需开始在命名空间中输入,IntelliSense 就会列出命名空间,因此您可以深入了解您要查找的内容。

      【讨论】:

        猜你喜欢
        • 2012-10-17
        • 2021-09-29
        • 1970-01-01
        • 2013-09-28
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 2016-08-29
        • 2013-02-16
        相关资源
        最近更新 更多