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