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

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

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

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指令的可能建议来查找匹配的智能感知建议。