你好!
有2个文件:
嵌套.cs:
namespace Demo { namespace NestingNS { class Nesting { } } }无嵌套.cs
namespace Demo.NoNestingNS { class NoNesting { } }
在第一个文件中,命名空间相互嵌套,在第二个文件中,命名空间有一个复合标识符(如果可以这样称呼的话)。
问题 1:这些声明(类名和名称空间除外)之间有什么区别?还是第二个案例是第一个案例中展开的某种语法糖?
问题 2:什么时候使用第一个声明更好,什么时候使用第二个声明更好?
这是语法糖。如果您正在编写一个非常大的程序或库,您可能希望您的项目描述安全空间,但以用户知道它在系统中的方式。维护一个方便的层次结构,以便用户(另一个程序员)甚至可以在没有文档的情况下看到您的库中有哪些部分。
没有直接的区别。但对于“嵌套”声明的情况,您可以提前结束嵌套的命名空间,并开始一个新的命名空间:
此外,对于“嵌套”声明的情况,您可以在其中插入一个额外的声明,
using这会产生有趣的效果:这将调用
Tools.Console.WriteLine而不是System.Console.WriteLine.using Console = Tools.Console;放在中间层和内部层的区别如果B里面有类就体现出来了Console:对于代码将打印“内部”,而不是“外部”。
这是一个品味问题。如果可能的话,我会使用更短的声明,以免弄乱程序的文本。