Класс C # в каталоге, не имеющий имени каталога в своем пространстве имен - PullRequest
1 голос
/ 18 мая 2010

Если вы добавите каталог в проект Visual Studio и добавите в него class, namespace будет соответствовать всему пути каталога включительно.

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

Это нормально, по вашему мнению? Или в каком-то соглашении говорится, что каждый класс в каталоге должен включать его в пространство имен?

Спасибо

Ответы [ 3 ]

2 голосов
/ 18 мая 2010

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

1 голос
/ 18 мая 2010

На мой взгляд, папки и пространства имен служат для разных целей.

Папки полезны для обеспечения четкой иерархии для людей, которые читают ваш код

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

Следовательно, несоответствие прекрасно, если каждый имеет смысл.

1 голос
/ 18 мая 2010

Ограничений нет, но некоторые считают, что полезно иметь пространство имен, идентичное пути. Таким образом, вы можете выбрать любое пространство имен и поместить файл класса в любое место.

...