以下两种定义命名空间的方法有什么区别?
namespace A.B.C {
public class AA{
}
}
namespace A {
namespace B{
namesapce C{
public class AA{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在某些我可能拥有的地方
namespace A{
//some classes
}
namespace A.B {
//some classes
}
namespace A {
namespace B {
//some classes
}
}
Run Code Online (Sandbox Code Playgroud)
两者都需要做同样的事情来使用AA类using A.B.C;我可以使用它C.AA a;来指定C命名空间中的AA类,或者我必须使用fall命名空间约定:A.B.C.AA a;避免可能的冲突?
他们是一样的.如果你在.NET Reflector中查看这段代码:
namespace A {
namespace B{
namespace C{
public class AA{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
你得到这个:
namespace A.B.C
{
public class AA
{
// Methods
public AA();
}
}
Run Code Online (Sandbox Code Playgroud)
两种方法都编译为完全相同的中间语言代码.