多级命名空间

时间:2011-05-22 12:04:14

标签: c# namespaces code-organization

在C#中,你可以这样做:

namespace Blah
{
    namespace Foo
    {
    }
}

或者:

namespace Blah.Foo
{
}

如果有,我应该更喜欢哪一个?底部的大括号有点干净,但我不知道它是否具有相同的属性。

3 个答案:

答案 0 :(得分:2)

两者表现平平,我更喜欢第二种。

通常,人们更喜欢每个类/接口有1个.cs文件,或者至少对于类似的组(例如,所有Tuple实现),这意味着你通常在.cs文件中有1个命名空间。

嵌套命名空间添加缩进级别。通常,对于您编写的每段代码,您已经深入3级(命名空间,类,方法),那么为什么要添加更多不必要的缩进?

答案 1 :(得分:2)

他们是完全相同的。唯一的区别是能够在顶部示例中的外部Blah内放置额外的东西(类型,使用指令)(这可能是也可能不是一个好主意)。我不认为我曾经在实际代码中使用过第一个版本......第二个版本通常是首选版本。

答案 2 :(得分:2)

这两种方式产生相同的结果:内部代码将位于命名空间Blah.Foo中。

我更喜欢第二个版本,因为它更短,并且不会不必要地添加缩进级别。

如果你想在一个文件中从相关命名空间声明几个类型,我可以看到第一个选项,但我认为在大多数情况下这不是一个好主意。