Я работаю над проектом MVVM, поэтому у меня есть папки в моем проекте, такие как Models, ViewModels, Windows и т.д. Всякий раз, когда я создаю новый класс, Visual Studio автоматически добавляет имя папки в обозначение пространства имен, а не просто сохраняет пространство имен на уровне проекта. Таким образом, добавление нового класса в папку ViewModels приведет к пространству имен MyProject.ViewModels
вместо просто MyProject
.
Когда я впервые столкнулся с этим, это меня разозлило. Мои имена классов довольно ясны, иногда даже содержат имя папки в них (например, ContactViewModel
). Я быстро обнаружил, что вручную удаляю имя папки в пространствах имен. Я даже попытался в какой-то момент создать шаблон пользовательского класса (см. этот вопрос), но я не мог заставить его работать, поэтому продолжал делать это вручную.
Я начал удивляться, хотя это соглашение существует по уважительной причине, которую я просто не вижу. Я видел, что это полезно, если у вас по какой-то причине было множество наборов одинаковых имен классов, организованных в папки, но это не похоже на особенно распространенный сценарий.
Вопросы:
- Почему это общее соглашение для имен пространства имен отражает структуру папок?
- Вы придерживаетесь этой конвенции? Почему?