Использование пространств имен в VB.NET

Наиболее распространенный способ использования пространств имен VB.NET большинством программисты сказать компилятору, какие библиотеки .NET Framework необходимы для конкретной программы. Когда вы выбираете «шаблон» для вашего проекта (например, «Приложение Windows Forms»), одна из вещей вы выбираете конкретный набор пространств имен, на которые будут автоматически ссылаться ваши проект. Это делает код в этих пространствах имен доступным для вашей программы.

Например, некоторые из пространств имен и фактических файлов, в которых они находятся для приложения Windows Forms:

Система> в System.dll
Система. Данные> в Системе. Data.dll
Система. Развертывание> Система. Deployment.dll
Система. Рисование> Система. Drawing.dll
Система. Окна. Формы> Система. Окна. Forms.dll

Вы можете увидеть (и изменить) пространства имен и ссылки для вашего проекта в свойствах проекта под Ссылки Вкладка.

Такое мышление о пространствах имен делает их похожими на «библиотеку кода», но это только часть идеи. Настоящее преимущество пространств имен - это организация.

instagram viewer

Большинству из нас не удастся установить новую иерархию пространства имен, потому что это обычно делается только один раз «в начале» для большой и сложной библиотеки кода. Но здесь вы узнаете, как интерпретировать пространства имен, которые вас попросят использовать во многих организациях.

Что делают пространства имен

Пространства имен позволяют организовать десятки тысяч объектов .NET Framework и все объекты, которые программисты VB создают в проектах, поэтому они не конфликтуют.

Например, если вы ищете .NET для цвет объект, вы найдете два. Существует цвет объект в обоих:

Система. Рисование
Система. Окна. СМИ

Если вы добавите импорт оператор для обоих пространств имен (ссылка также может быть необходима для свойств проекта) ...

Система импорта. Рисование
Система импорта. Окна. СМИ

... тогда утверждение как ...

Тусклый как цвет

... будет помечен как ошибка с пометкой «Цвет неоднозначен», и .NET укажет, что оба пространства имен содержат объект с этим именем. Этот тип ошибки называется «столкновением имен».

Это реальная причина для «пространств имен», а также способ, которым пространства имен используются в других технологиях (таких как XML). Пространства имен позволяют использовать одно и то же имя объекта, например цвет, когда имя подходит и все еще держать вещи организованными. Вы можете определить цвет Объект в вашем собственном коде и отличите его от тех, что в .NET (или код других программистов).

Пространство имен MyColor
Цвет публичного класса
Sub Color ()
' Сделай что-нибудь
End Sub
Конечный класс
Конечное пространство имен

Вы также можете использовать цвет Объект где-то еще в вашей программе, как это:

Dim c As New MyColor. цвет
с. Цвет()

Прежде чем перейти к некоторым другим функциям, имейте в виду, что каждый проект содержится в пространстве имен. VB.NET использует имя вашего проекта (WindowsApplication1 для стандартного приложения форм, если вы его не меняете) в качестве пространства имен по умолчанию. Чтобы увидеть это, создайте новый проект (мы использовали имя NSProj и проверьте инструмент Обозреватель объектов):

  1. щелчок Вот отобразить иллюстрацию
  2. Нажмите на назад кнопка в вашем браузере, чтобы вернуться

Обозреватель объектов показывает пространство имен вашего нового проекта (и автоматически определенные в нем объекты) вместе с пространствами имен .NET Framework. Эта способность VB.NET делать ваши объекты равными объектам .NET является одним из ключей к мощности и гибкости. Например, именно поэтому Intellisense будет показывать ваши собственные объекты, как только вы их определите.

Чтобы поднять его на ступеньку выше, давайте определим новый проект (Мы назвали наш NewNSProj в том же решении (используйте файл > добавлять > Новый проект ...) и закодировать новое пространство имен в этом проекте. И чтобы сделать его более увлекательным, давайте поместим новое пространство имен в новый модуль (мы назвали его NewNSMod). И поскольку объект должен быть закодирован как класс, мы также добавили блок класса (с именем NewNSObj). Вот код и Solution Explorer, чтобы показать, как он сочетается:

  1. щелчок Вот отобразить иллюстрацию
  2. Нажмите на назад кнопка в вашем браузере, чтобы вернуться

Поскольку ваш собственный код «точно такой же, как и код Framework», необходимо добавить ссылку на NewNSMod в NSProj использовать объект в пространстве имен, даже если они находятся в одном решении. Как только это будет сделано, вы можете объявить объект в NSProj основанный на методе в NewNSMod. Вам также необходимо «построить» проект, чтобы существующий объект существовал для ссылки.

Dim o As New NewNSProj. AVBNS.NewNSMod. NewNSObj
о. AVBNSMethod ()

Это довольно Dim заявление хотя. Мы можем сократить это, используя импорт заявление с псевдонимом.

Импортирует NS = NewNSProj. AVBNS.NewNSMod. NewNSObj
...
Dim O As New NS
о. AVBNSMethod ()

При нажатии кнопки «Выполнить» отображается MsgBox из пространства имен AVBNS "Эй! Это сработало!"

Когда и зачем использовать пространства имен

Все до сих пор действительно только что было синтаксис - кодирование правила, которым вы должны следовать при использовании пространств имен. Но чтобы по-настоящему воспользоваться, нужно две вещи:

  • Требование к организации пространства имен в первую очередь. Вам нужно больше, чем просто проект «Hello World», прежде чем организация пространств имен начнет окупаться.
  • План их использования.

В общем, Microsoft рекомендует организовать код вашей организации, используя комбинацию названия вашей компании и названия продукта.

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

Drno
Консалтинг
ReadTheirWatchNChargeEm
TellEmNuthin
Хирургия
ElephantMan
MyEyeLidsRGone

Это похоже на организацию .NET ...

объект
система
ядро
IO
Linq
Данные
Odbc
SQL

Многоуровневые пространства имен достигаются простым вложением блоков пространства имен.

Пространство имен DRNo
Хирургия пространства имен
Пространство имен MyEyeLidsRGone
Код VB
Конечное пространство имен
Конечное пространство имен
Конечное пространство имен

или

Пространство имен DRNo. Хирургия. MyEyeLidsRGone
Код VB
Конечное пространство имен