在C#中为程序集中的所有类包含命名空间

时间:2014-01-27 14:04:16

标签: c#

是否可以在C#中定义程序集范围的using SomeNamespace语句,以便该程序集中的所有类和代码文件都包含该命名空间而无需指定using SomeNamespace

考虑到我在MSDN文档中找不到它,并且在编写C#的过去6年中没有遇到过它,我很怀疑,但我还是想问别人。

1 个答案:

答案 0 :(得分:3)

程序集或生成的代码中不存在

using

这是一种仅存在于源代码中的简写。

考虑经典的“Hello World”:

using System;

namespace Hello
{
  class Program
  {
    public static void Main(string[] args)
    {
        Console.WriteLine("Hello World!");
    }
  }
}

生成的Main方法的实际字节码将表示为CIL程序集:

ldstr "Hello World!"
call void [mscorlib]System.Console::WriteLine(string)
ret

请注意,这与我们将using System从C#源文件中删除,并使用System.Console.WriteLine()完全相同。实际上,它甚至比这更加冗长,因为实际生成的代码中使用的方法签名包括程序集为([mscorlib])。

说到“程序集范围using SomeNamespace”是没有意义的,因为程序集根本没有任何using

由于using指令是源文件中的内容,而不是程序集中的内容,因此它是源问题,而不是程序集问题。编辑IDE使用的模板以包含您需要的语句,或者使用添加using语句的模板,只能通过查看基于当前using指令的可能建议来查找匹配的智能感知建议。文件。