【问题标题】:Does C# Support Project-Wide Default Namespace Imports Like VB.NET?C# 是否支持像 VB.NET 一样的项目范围的默认命名空间导入?
【发布时间】:2010-10-21 19:32:07
【问题描述】:

我是最近转换为 C# 的 VB 开发人员,但到目前为止我还没有找到一件事。在 VB 中,当我设置一个新项目时,我可以指定项目中使用的命名空间并将它们添加到所有类的默认导入中(所以一切都会自动拥有它们,就好像我为每个类添加了“Imports System.Data.OracleClient”一样)。使用 C#,我发现我总是为每个新类输入这些内容。有没有办法为项目设置默认值,以便它至少自动将这些附加到每个类文件中?

【问题讨论】:

    标签: c# namespaces


    【解决方案1】:

    不,没有办法。 C# 不支持项目级导入或项目级命名空间的概念。

    您唯一能做的就是更改您正在使用的项目模板(Class.cs 或 Code.cs)以拥有您想要的命名空间。这些文件位于以下目录下

    %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\itemtemplatescache\CSharp\Code\1033

    在这里,您应该看到一个 Class.zip 和 Code.zip 目录,每个目录下都有一个 .cs 文件。这是在 Visual Studio 中执行“添加新项”操作时使用的模板文件。您可以更改这些以满足您的需求并拥有您想要的默认命名空间。

    一个稍微简单的解决方案是为您想要的特定项目添加每个用户的代码文件。只需创建一个您想作为应用程序模板的代码文件,然后将其放在以下目录中。

    C:\Users\YourUserName\Documents\Visual Studio 2008\Templates\ItemTemplates\Visual C#

    现在,只要您执行“添加新项目”操作,此文件就会显示。

    【讨论】:

      【解决方案2】:

      其他人建议使用模板等。我个人认为这不是问题 - 我在 Visual Studio 中输入我想使用的类的名称,即使它没有找到“智能标签”(或其他任何东西调用)图标弹出。我按了Ctrl-。它为我添加了一个 using 指令。

      我认为 ReSharper 有助于使这项工作变得更好,但现在它对我来说是如此自动化,以至于我不再考虑它了。 (我怀疑不同之处在于,使用 ReSharper,我可以在行中的任何位置按 Alt-Enter,它会提供更正,而不必将光标放在 Visual Studio 的类型名称本身中。)

      【讨论】:

      • 继续这个想法,我最喜欢的 Resharper 功能之一是您可以键入一个类的前几个字符,按 SHIFT + ALT + 空格,它将创建一个包含所有匹配类的 Intellisense 窗口在项目或引用的 dll 中。当您选择一个时,如果需要,它将添加 using 语句。 (这个命令是 Resharper.Resharper_CompleteCodeTypeName 如果你想在你的键绑定中找到它)
      • 又一个VB胜出的,添加using不是问题,但是看到每个文件中的代码重复,我的DRY心有点痛。
      【解决方案3】:

      在 C# 10 中,这个答案发生了变化。

      C# 10 引入了[全局使用指令][1]:

      全局 using 指令 您可以将 global 修饰符添加到任何 using 指令,以指示编译器该指令适用于编译中的所有源文件。这通常是项目中的所有源文件。

      【讨论】:

        【解决方案4】:

        不,C# 中没有 my 命名空间。我认为您可以使用项目模板或代码 sn-ps 完成同样的事情。

        【讨论】:

          【解决方案5】:

          请参阅this post 以获得答案..

          简而言之,就是将你想要的用法添加到模板中。

          相信你想入手here

          【讨论】:

            猜你喜欢
            • 2011-02-06
            • 2016-01-29
            • 2017-07-19
            • 1970-01-01
            • 2018-08-12
            • 2012-09-26
            • 1970-01-01
            • 1970-01-01
            • 2019-10-18
            相关资源
            最近更新 更多