C# единая проектная организация

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

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

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

3 ответа

Решение

Да, используйте папки.

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

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

using System; // Etc

namespace Company.Project.Foo
{
    class Bar
    {
    }
}

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

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

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

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

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

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

Другие вопросы по тегам