Зачем импортировать дочернее пространство имен, если родительское пространство имен импортировано? - PullRequest
3 голосов
/ 20 июля 2009

Зачем кому-то

Import System

а также

Import System.Web.UI.WebControls

Если система является корнем всех пространств имен, что вредно, если в коде есть только Импорт системы.

Ответы [ 2 ]

2 голосов
/ 20 июля 2009

Если бы import System импортировал все пространства имен более низкого уровня, то почти не было бы никакой причины вообще иметь импорт.

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

Например, может быть два разных пространства имен (составляющих их) System.Secure и System.Insecure. Оба могут иметь классы для работы с http с точно такими же именами, но один может быть реализован с использованием безопасных, но более медленных протоколов, а другие - небезопасных, но более быстрых.

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

1 голос
/ 20 июля 2009

Import System не импортирует другие пространства имен более низкого уровня. Каждый уровень должен быть импортирован явно.

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