全局引用命名空间?

有没有办法在整个解决方案中全局引用命名空间?

所以不要在每个代码文件中都有这些行:

using System; using MyNamespace; 

必须只声明一次,每个代码文件都会使用它们。

顺便说一下,我使用的是Visual Studio。

不,C#没有这个概念。 在这方面,每个源文件都是独立的。 (如果using指令在命名空间声明中,那些也与对等命名空间声明中的其他using指令无关。根据我的经验,这是非常罕见的情况。)

您不需要ReSharper来更改新类中包含的内容。 您可以使用Visual Studio模板 。

编辑:只是为了澄清在命名空间中使用指令的观点,假设我们有(所有在一个文件中):

 using Foo; namespace X { using Bar; // Foo and Bar are searched for code in here, but not Baz } namespace Y { using Baz; // Foo and Baz are searched for code in here, but not Bar } 

通常我只在文件中有一个名称空间声明,并将所有using指令放在它之前。

不,这是不可能的。

如果您正在使用ReSharper ,则可以设置一个选项,以在您创建的每个新文件中包含特定的using指令。

从这个SO问题和后续博客文章 。 您可以编辑Visual Studio默认模板。

为此,请查看此zip文件中的文件:[Program Files] [Visual Studio] \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class.zip

并根据需要修改Class.cs文件。 此外,Visual Studio可能已缓存此文件:[Program Files] [Visual Studio] \ Common7 \ IDE \ ItemTemplatesCache \ CSharp \ Code \ 1033 \ Class.zip

正如其他人所说,Visual Studio模板是可行的方法。

请注意,只是在模板中添加using语句并不能确保编译器可以解析您的类型。 因此,如果要在每个类中为MyNamespace添加using语句,则可能还需要向项目添加程序集引用。 有关更多信息,请参阅C#FAQ 。

我想念CSharp的一个技巧是查看“refences”(在VS中),右键单击和“Add New Reference”。 这在组合多个项目时特别方便,我已经在其他地方重新使用了一些generics类。