Поделиться через


Оператор Namespace

Объявляет имя пространства имен и вызывает исходный код ниже объявления для компиляции в пределах этого пространства имен.

Namespace [Global.] { name | name.name }
    [ componenttypes ]
End Namespace

Части

  • Global
    Необязательный.Позволяет указать пространство имен из корневого пространства имен проекта.Дополнительные сведения см. в разделе Пространства имен в Visual Basic.

  • name
    Обязательный.Уникальное имя пространства имен.Должно быть допустимым идентификатором Visual Basic.Дополнительные сведения см. в разделе Имена объявленных типов (Visual Basic).

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

  • End Namespace
    Завершает блок Namespace.

Заметки

Пространства имен используются в качестве организационной системы.Они предоставляют возможность классификации и представления элементов программирования, которые предоставляются другим программам и приложениям.Видит, что пространство имен - не " a " тип в том смысле, что класс или структура быть-вы не могут объявлять элемент программирования, чтобы иметь тип данных пространства имен.

Все элементы программирования, объявленные после оператора Namespace, относятся к пространству имен.Visual Basic продолжает компилировать элементы в последнем объявленном пространстве имен до тех пор, пока он не встречает оператор End Namespace или Namespace.

Если пространство имен уже определено (даже за пределами проекта), к нему можно добавить элементы программирования.Для этого используется a Namespace выписка для направления, что Visual Basic компилировало элементы в пространство имен.

Можно использовать инструкцию Namespace только на уровне файла или пространства имен.Это означает, что контекст объявления внутри пространства имен должен быть исходным файлом или другим пространством имен и не может быть классом, структурой, модулем, интерфейсом или процедурой.Дополнительные сведения см. в разделе Контексты объявления и уровни доступа по умолчанию (Visual Basic).

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

Уровень доступа

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

Элементы программирования, объявленные на уровне пространства имен (то есть имеют смысл в пространстве имен, но не внутри какого-либо другого элемента), могут иметь доступ Public или Friend.Если данный параметр не определен, по умолчанию для элемента используется уровень доступа Friend.Элементы, которые можно объявить на уровне пространства имен, включают классы, структуры, модули, интерфейсы, перечисления и делегаты.Дополнительные сведения см. в разделе Контексты объявления и уровни доступа по умолчанию (Visual Basic).

Корневое пространство имен

Все имена пространства имен в проекте основаны на корневом пространстве имен.Visual Studio задает имя проекта как корневое пространство имен по умолчанию для всего кода в проекте.Например, если проект называется Payroll, его элементы программирования относятся к пространству имен Payroll.При объявлении Namespace funding полным именем пространства имен будет являться Payroll.funding.

При необходимости указать существующее пространство имен в операторе Namespace (как в примере с базовым списком классов), можно установить корневое пространство имен в значение NULL.Для этого щелкните Свойства проекта в меню Проект и удалите запись в поле Корневое пространство имен.Если это не было выполнено в примере с базовым списком классов, компилятор Visual Basic будет обрабатывать System.Collections.Generic в качестве нового пространства имен в пределах проекта Payroll, а полным именем будет являться Payroll.System.Collections.Generic.

Кроме того можно использовать ключевое слово Global для ссылки на элементы пространства имен, определенные вне проекта.Это позволяет сохранить имя проекта в качестве корневого пространства имен.Это уменьшает вероятность случайного слияния элементов программирования с соответствующими им элементами в существующем пространстве имен.Дополнительные сведения см. в разделе "global - ключевое слово в разделе полных именах" в Пространства имен в Visual Basic.

Global ключевое слово может также использоваться при выписке пространства имен.Это позволяет определить пространство имен из корневого пространства имен проекта.Дополнительные сведения см. в разделе "global - ключевое слово в разделе" in выписках пространства имен Пространства имен в Visual Basic.

Устранение неполадок. Корневое пространство имен может привести к непредвиденному объединению имен пространств имен.Если сделать ссылку на пространство имен, определенное вне проекта, компилятор Visual Basic может обработать их как вложенные пространства имен в корневом пространстве имен.В таком случае компилятор не распознает никакие типы, которые уже были определены во внешних пространствах имен.Избежать этого или установил свое корневое пространство имен со значением NULL как описано в разделе "пространство имен" или использует Global ключевое слово для доступа к элементам внешних пространствах имен.

Атрибуты и модификаторы

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

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

Пример

В следующем примере объявляются два пространства имен, причем одно из них вложено в другое.

Namespace n1
    Namespace n2
        Class a
            ' Insert class definition.
        End Class
    End Namespace
End Namespace

В следующем примере в одной строке объявляется несколько вложенных пространств имен. По смыслу этот пример эквивалентен предыдущему.

Namespace n1.n2
    Class a
        ' Insert class definition.
    End Class
End Namespace

В следующем примере выполняется обращение к классу, определенному в предыдущих примерах.

Dim instance As New n1.n2.a

В следующем примере определяется схема нового универсального списка класса и она добавляется к пространству имен System.Collections.Generic.

Namespace System.Collections.Generic
    Class specialSortedList(Of T)
        Inherits List(Of T)
        ' Insert code to define the special generic list class.
    End Class
End Namespace

См. также

Ссылки

Оператор Imports (пространство имен .NET и тип)

Основные понятия

Имена объявленных типов (Visual Basic)

Пространства имен в Visual Basic