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
оператор в верхней части файла, чтобы ввести соответствующие пространства имен, которые вы хотите. Только если конфликт имен классов на самом деле указывает пространство имен или его часть, чтобы различать их.