有没有办法在整个解决方案中全局引用命名空间?
所以不要在每个代码文件中都包含这些行:
using System;
using MyNamespace;
只需要声明一次,每个代码文件都会使用它们。
顺便说一下,我使用的是Visual Studio。
答案 0 :(得分:6)
不,C#没有这个概念。在这方面,每个源文件都是独立的。 (如果using指令在名称空间声明中,那些也与对等名称空间声明中的其他using指令无关。根据我的经验,这是非常罕见的情况。)
您不需要ReSharper来更改新类中包含的内容。您可以使用Visual Studio templates。
编辑:只是为了澄清在名称空间中使用指令的观点,假设我们有(所有在一个文件中):
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指令放在它之前。
答案 1 :(得分:4)
不,这是不可能的。
如果您使用的是ReSharper,则可以设置一个选项,在您创建的每个新文件中包含特定的using指令。
答案 2 :(得分:2)
来自此SO question和后续blog post。您可以编辑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
答案 3 :(得分:0)
正如其他人所说,Visual Studio模板是可行的方法。
请注意,只是在模板中添加using语句并不能确保编译器可以解析您的类型。因此,如果要在每个类中为MyNamespace添加using语句,则可能还需要向项目添加程序集引用。有关详细信息,请参阅C# FAQ。
答案 4 :(得分:-3)
作为CSharp的新手,我想念的一个技巧是查看“refences”(在VS中),右键单击和“Add New Reference”。这在组合多个项目时特别方便,我已经在其他地方重新使用了一些泛型类。