是否可以在C#中定义程序集范围的using SomeNamespace
语句,以便该程序集中的所有类和代码文件都包含该命名空间而无需指定using SomeNamespace
?
考虑到我在MSDN文档中找不到它,并且在编写C#的过去6年中没有遇到过它,我很怀疑,但我还是想问别人。
答案 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
指令的可能建议来查找匹配的智能感知建议。文件。