C # единая проектная организация - PullRequest
5 голосов
/ 09 декабря 2008

Я реорганизую свои исходные файлы в одно решение с одним проектом по разным причинам:

Это оставляет мне множество пространств имен, которые разбиты на несколько файлов. Пока что я использую это соглашение: учитывая пространство имен Company.Project.A, файлы имеют имена A.f1.cs, A.f2.cs и т. Д., А пространство имен Company.Project.B разделено на B.f1.cs, B.f2.cs и т. Д.

Учитывая единственное ограничение проекта, есть ли лучшие способы организовать несколько файлов в нескольких пространствах имен?

Ответы [ 3 ]

11 голосов
/ 09 декабря 2008

Да - использовать папки.

Если вы создаете папку в проекте, новые классы в этой папке будут автоматически использовать имя папки в качестве основы для пространства имен.

Например, если у вас есть проект с пространством имен по умолчанию «Company.Project» и папкой «Foo», содержащей «Bar.cs», вы получите:

using System; // Etc

namespace Company.Project.Foo
{
    class Bar
    {
    }
}
2 голосов
/ 09 декабря 2008

Так что решение здесь. Это папки. Но иногда это сложно. Прежде всего, это хорошая идея иметь один файл на класс. Если вы соберете несколько классов в один файл - у вас возникнут проблемы с их нахождением со временем.

Вторая вещь о папках - если вы нажмете на папку и выберите, например, «Добавить -> Новый элемент», этот элемент будет помещен в выбранную папку. Но будь осторожен! Если вы будете перемещать файлы между папками, пространства имен не будут обновлены.

Это распространенный источник проекта. Через некоторое время вы можете получить проект, в котором у вас есть аккуратно организованные папки и файлы, но не отражающие пространства имен. Так, например, если у вас есть класс MyClass в папке MyFolder, убедитесь, что ваше пространство имен для этого класса напоминает MyApp.MyFolder, а не какой-то старый мусор.

Итак, если вы не будете упаковывать классы в один файл и посмотрите, отражают ли пространства имен классов иерархию папок - вы на правильном пути, чтобы сделать ваш проект очень удобным для чтения и навигации.

1 голос
/ 09 декабря 2008

100% согласны с Джоном Скитом.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...