C#支持项目范围的默认命名空间是否像VB.NET一样导入?

Rub*_*aus 18 c# namespaces

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

Jar*_*Par 15

不,没有办法.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#

现在,只要执行"添加新项"操作,就会显示此文件.


Jon*_*eet 8

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

我认为ReSharper有助于使这项工作变得更好,但现在对我来说这是自动的,我现在不再考虑它了.(我怀疑不同的是,使用ReSharper我可以在行中的任何一点点击Alt-Enter并且它将提供校正,而不是必须将光标放在Visual Studio的类型名称中.)

  • 继续这个想法,我最喜欢的Resharper功能之一就是你可以输入类的前几个字符,按SHIFT + ALT + Space,它将创建一个Intellisense窗口,其中包含项目中所有匹配的类或引用的dll.当您选择一个时,如果需要,它将添加using语句.(如果要在键绑定中找到它,此命令为Resharper.Resharper_CompleteCodeTypeName) (2认同)

ssm*_*ith 8

对于 C# 10,这个答案已经改变。

C# 10 引入了全局 using 指令

全局使用指令

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