2011-05-22 4 views
3

В C#, вы можете сделать:Несколько уровней пространств имен

namespace Blah 
{ 
    namespace Foo 
    { 
    } 
} 

Или:

namespace Blah.Foo 
{ 
} 

Что я должен предпочесть, если либо? Нижняя часть несколько более чистая с точки зрения фигурных скобок, но я не знаю, обладает ли она такими же свойствами.

ответ

2

Оба ведут себя одинаково, и я предпочитаю второй.

Обычно люди предпочитают иметь 1 .cs-файл для каждого класса/интерфейса или, по крайней мере, для групп похожих (например, всех реализаций Tuple), что означает, что в любом случае у вас обычно есть 1 пространство имен в файле .cs.

Вложенные пространства имен добавляют уровни отступа. Как правило, вы уже на 3 уровнях (пространство имен, класс, метод) для каждой части кода, который вы пишете, поэтому зачем добавлять еще более ненужные углубления?

2

Они идентичны. Единственное различие заключается в возможности добавлять лишние вещи (типы, используемые-директивы) только внутри внешнего Blah в верхнем примере (что может быть или не быть хорошей идеей). Я не думаю, что когда-либо использовал первую версию в реальном коде ... Обычно предпочтительна вторая версия.

2

Два способа дают идентичные результаты: код внутри будет находиться в пространстве имен Blah.Foo.

Я бы предпочел вторую версию, потому что она короче и не излишне добавляет уровень отступов.

Я мог видеть первый вариант, который использовался, если вы хотите объявить несколько типов из связанных пространств имен в одном файле, но я думаю, что это не очень хорошая идея в большинстве случаев.

Смежные вопросы