Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Объявляет имя модуля и вводит определение переменных, свойств, событий и процедур, составляющих модуль.
Синтаксис
[ <attributelist> ] [ accessmodifier ] Module name
[ statements ]
End Module
Комплектующие
attributelist
Необязательно. См. список атрибутов.
accessmodifier
Необязательно. Может быть одним из следующих вариантов:
См. сведения о уровнях доступа в Visual Basic.
name
Обязательное. Имя этого модуля. См. объявленные имена элементов.
statements
Необязательно. Операторы, определяющие переменные, свойства, события, процедуры и вложенные типы этого модуля.
End Module
Module Завершает определение.
Замечания
Инструкция Module определяет ссылочный тип, доступный во всем пространстве имен.
Модуль (иногда называемый стандартным модулем) аналогичен классу, но с некоторыми важными различиями. Каждый модуль имеет ровно один экземпляр и не должен быть создан или назначен переменной. Модули не поддерживают наследование или реализацию интерфейсов. Обратите внимание, что модуль не является типом в том смысле, что класс или структура — нельзя объявить элемент программирования для типа данных модуля.
Можно использовать Module только на уровне пространства имен. Это означает, что контекст объявления для модуля должен быть исходным файлом или пространством имен, и не может быть классом, структурой, модулем, интерфейсом, процедурой или блоком. Нельзя вложить модуль в другой модуль или в любом типе. Дополнительные сведения см. в разделе "Контексты объявления" и "Уровни доступа по умолчанию".
Модуль имеет то же время существования, что и программа. Поскольку его члены все Shared, они также имеют время существования, равные программе.
Модули по умолчанию получают доступ "Друг ". Уровни доступа можно настроить с помощью модификаторов доступа. Дополнительные сведения см. в разделе "Уровни доступа" в Visual Basic.
Все члены модуля неявно Shared.
Классы и модули
Эти элементы имеют много сходств, но есть и некоторые важные различия.
Терминология. Предыдущие версии Visual Basic распознают два типа модулей: модули классов (CLS-файлы) и стандартные модули (BAS-файлы). Текущая версия вызывает эти классы и модули соответственно.
Общие члены. Вы можете контролировать, является ли член класса общим или членом экземпляра.
Ориентация объекта. Классы являются объектно-ориентированными, но модули не являются. Поэтому в качестве объектов можно создать экземпляр только классы. Дополнительные сведения см. в разделе "Объекты и классы".
Правила
Модификаторы. Все члены модуля неявно разделяются. Ключевое
Sharedслово нельзя использовать при объявлении члена, и вы не можете изменить общее состояние любого члена.Наследование. Модуль не может наследовать от любого типа, отличного Objectот типа, от которого наследуются все модули. В частности, один модуль не может наследоваться от другого.
Оператор "Наследование " нельзя использовать в определении модуля, даже чтобы указать Object.
Свойство по умолчанию. Нельзя определить свойства по умолчанию в модуле. Дополнительные сведения см. в разделе "По умолчанию".
Поведение
Уровень доступа. В модуле можно объявить каждый элемент с собственным уровнем доступа. Члены модуля по умолчанию являются общедоступным доступом, за исключением переменных и констант, которые по умолчанию являются частным доступом. Если модуль имеет более ограниченный доступ, чем один из его членов, указанный уровень доступа модуля имеет приоритет.
Область. Модуль находится в области в пределах своего пространства имен.
Область каждого члена модуля — это весь модуль. Обратите внимание, что все члены проходят повышение типа, что приводит к повышению их области до пространства имен, содержащего модуль. Дополнительные сведения см. в разделе "Повышение типов".
Квалификация. В проекте может быть несколько модулей, и вы можете объявить членов с одинаковым именем в двух или нескольких модулях. Однако необходимо указать любую ссылку на такой элемент с соответствующим именем модуля, если ссылка находится за пределами этого модуля. Дополнительные сведения см. в разделе "Ссылки на объявленные элементы".
Пример
Public Module thisModule
Sub Main()
Dim userName As String = InputBox("What is your name?")
MsgBox("User name is " & userName)
End Sub
' Insert variable, property, procedure, and event declarations.
End Module