全局引用命名空间?

时间:2009-06-04 18:16:28

标签: c# .net namespaces

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

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

using System;
using MyNamespace;

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

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

5 个答案:

答案 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”。这在组合多个项目时特别方便,我已经在其他地方重新使用了一些泛型类。