命名空间点命名空间和嵌套命名空间有什么区别?

12 c# namespaces

之间有什么区别:

namespace Outer.Inner
{
}
Run Code Online (Sandbox Code Playgroud)

namespace Outer
{
    namespace Inner
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

在C#?

Jon*_*eet 13

假设您没有usingOuter命名空间中放置任何其他声明或指令,则没有任何区别.

既然你会非常非常罕见的单个文件中声明在多个命名空间的成员,我建议使用第一种形式-除了别的可以节省缩进的水平.请注意,"新行开头的括号"是C#更常规的支撑样式,但:

namespace Outer.Inner
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我已经用C++编程一段时间了,我真的不喜欢新行开头的大括号,我不知道为什么,但是我很难读出这样的代码! (3认同)
  • @paul:虽然支撑约定并不像命名那样普遍,但我认为值得尝试让自己沉浸在语言的最常见惯例中 - 你会很快习惯它,然后是你所有的例子等等将在网上阅读将更容易阅读...*和*任何人阅读您的代码(从C#背景)将发现它更容易阅读. (3认同)
  • 谢谢,我会尝试从现在开始这样做,但是我在这个网站上看到了一些库:http://referencesource.microsoft.com/使用与我使用相同的支撑方式,但我想你是对的,谢谢提示! (2认同)

Luc*_*ski 5

不,但第一个变体是c#代码中使用最多的变体.
第二个变体是你必须用C++编写的,我不确定我是否曾在真正的c#代码中看到它.


小智 5

没有任何区别,这些是相同的,但第一个更常见.