使用嵌套命名空间

时间:2011-08-12 15:16:59

标签: c#

有什么理由,为什么

new N1.N2.N3.C();

会编译,但

using N1.N2;
...
new N3.C();

会不会?

修改

C类在另一个引用的程序集中定义,如下所示:

namespace N1.N2.N3
{
   class C
   {
   }
}

2 个答案:

答案 0 :(得分:2)

因为名称空间需要在使用中或通过使用完全限定。对象的定义要么具有完全限定的命名空间,要么具有别名,要么没有 - 在这种情况下,完整命名空间必须具有使用权限。

N3不是一个完整的命名空间 - 它只是一个命名空间的一部分。

答案 1 :(得分:0)

因为您没有包含N3名称空间,所以找不到此C.