C# Полностью определенные пространства имен против небольших пространств имен

Я прочитал все эти вопросы о том, почему вы должны использовать "использование внутренних / внешних пространств имен", а также почему вы должны использовать или не использовать "var".

И я не ищу ответа на эти вопросы здесь.

Что я хочу знать (или подтвердить): есть ли разница между двумя декларациями ниже?

namespace MyCo.MyProject.MyModule
{
   using MyModule2;
   /*Put class definition here*/
}

namespace MyCo.MyProject.MyModule
{
   using MyCo.MyProject.MyModule2;
   /*Put class definition here*/
}

Так в чем же разница между использованием полностью определенных имен для пространств имен при использовании директив и не использованием их?

Я не думаю, что есть, но если кто-то может дать мне ссылку, которую я могу показать, чтобы доказать (или если я ошибаюсь, опровергаю это (опровергает ли это действительно английское слово или я выдумываю?)), Это будет быть фантастическим

1 ответ

Решение

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

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

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