不允许在另一个嵌套的命名空间中声明多部分的命名空间

来源:百度知道 编辑:UC知道 时间:2024/06/17 21:01:38
这是《C#高级编程》(第四版)P51的一句话,命名空间一节中,开始都能看懂,讲的是命名空间的嵌套,突然冒出一句“注意不允许在另一个嵌套的命名空间中声明多部分的命名空间”。首先就对“多部分”不解,英文原版是“Note that we are not permitted to declare a multi-part namespace nested within another namespace.”然后自己就设计了一个小的例子程序,但是一点问题都没有,运行正常,如下所示:
namespace Wrox.ProSharp.Basics {
using System;
using System.Data;
using AnotherSpace;

class NamespaceTest {
public static int Main() {
NamespaceTest NST = new NamespaceTest();
Console.WriteLine(NST.GetNamespace());

Test T = new Test();
Console.WriteLine(T.GetNamespace());
return 0;
}
public string GetNamespace() {
return this.GetType().Namespace;
}

}
}

namespace AnotherSpace {
public class Test {
public string GetNamespace() {
return this.GetType().Namespace;
}
}
}
所以始终不懂那句话是什么意思
namespace Wrox.ProSharp.Basics {
.....
}

其实这句话应该标明对应的.NET版本,在.NET 1.1版本里
你可以这样写:
namespace Cheese
{
namespace
MoreCheese
{
}
}

但你不能这样写:
namespace Cheese
{
namespace
Stinky.Cheese
{
}
}

注意这只是.NET 1.1版本不允许,在2.0及以后均可以

来源:http://p2p.wrox.com/c-2005/56590-about-namespace.html

应该是不能并列定义命名空间的意思
如:
namespace FristNamespace
{
namespace SecondNamespace namespace ThirdNamespace
{
………………
}
}
这就会出错

就是说空间命名是不能直接嵌套的,你上面命名的空间是并列的,所以没有错误.
如:
不能这样使用
namespace aaa
{
namespace bbb
{
}
}