Основной вопрос по C # - мне нужно пространство имен? - PullRequest
23 голосов
/ 20 сентября 2010

Я разработчик Java, совершенно новый для C #.В настоящее время я пишу DLL для распространения в моей организации.Это очень простая библиотека, содержащая пару классов, и я не вижу никакого реального применения всех их в некотором пространстве имен просто ради этого.Мне действительно нужно использовать пространство имен?Если так, то почему?Это какая-то лучшая практика?

Ответы [ 6 ]

16 голосов
/ 20 сентября 2010

Вам нужен один?Нет. Должен ли иметь его?Да.Это поможет предотвратить столкновения с классами с одинаковыми именами в других пространствах имен, не прибегая к (ИМХО) безобразному использованию global::.

12 голосов
/ 20 сентября 2010

Для одноразовых тестовых приложений (например, проверка ответов переполнения стека) я не использую пространство имен. Для что-нибудь еще, я делаю. Это просто вопрос организации - если вы собираетесь повторно использовать код, полезно отделить его от другого кода, который вы также повторно используете в том же контексте. Я имею в виду, что если вы создаете приложение с использованием LibraryX и LibraryY, полезно иметь возможность различать их в приложении. Возможно, что они оба используют одинаковые имена классов, например - что сделает код некрасивым, если вы не используете пространства имен.

Помимо всего прочего, если вы кодируете с помощью Visual Studio, на самом деле больше работы , а не , чтобы включить пространство имен - вам нужно изменить проект, чтобы он пустовал пространство имен по умолчанию. *

0 голосов
/ 24 августа 2015

В основном система является корневым пространством имен в asp.net C #. В .net каждая программа создается с пространством имен по умолчанию. Это пространство имен по умолчанию называется глобальным пространством имен. Но сама программа создает любые номера пространств имен, каждое из которых имеет уникальное имя.

узнать больше http://asp -net-by-parijat.blogspot.in / 2015/08 / что-это-имен-в-с-потребности-of.html

0 голосов
/ 20 сентября 2010

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

Короткая версия: не делайте этого.

http://blogs.msdn.com/b/ericlippert/archive/2010/03/09/do-not-name-a-class-the-same-as-its-namespace-part-one.aspx

0 голосов
/ 20 сентября 2010

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

0 голосов
/ 20 сентября 2010

Нет необходимости иметь пространство имен.Однако студия разработчиков ожидает, что вы используете пространство имен.Например, когда вы решите добавить класс в проект, студия разработчиков будет:

  • Создать файл для класса
  • Добавить файл в проект
  • Создайте пустой класс (в приведенном выше файле), который находится в пространстве имен проекта по умолчанию.

«Пространство имен проекта по умолчанию» является концепцией студии разработчика, а не концепцией C # и задается в свойствах объекта.project.

Поскольку вы создаете dll для использования другими пользователями, пользователям dll будет намного легче, если у вас есть пространство имен:

  • Люди ожидают васиметь пространство имен (поэтому может быть запутано, если у вас его нет)
  • Пространства имен значительно облегчат для ваших пользователей, если у вас есть класс (или enum и т. д.), который назван так же, как другой класс в любой dllони ссылаются на.

Поэтому я не вижу веской причины не использовать пространство имен.

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