Вложенные процедуры (Visual Basic)

Процедура Sub — это ряд инструкций Visual Basic, заключенных в Sub инструкции и End Sub инструкции. Процедура Sub выполняет задачу, а затем возвращает управление вызывающему коду, но не возвращает значение вызывающему коду.

Каждый раз, когда процедура вызывается, выполняются его инструкции, начиная с первой исполняемой инструкции после Sub инструкции и заканчивая первым End SubExit SubReturn или обнаруженной инструкцией.

Процедуру Sub можно определить в модулях, классах и структурах. По умолчанию это Publicозначает, что вы можете вызывать его из любого места в приложении с доступом к модулю, классу или структуре, в которой он определен. Метод терминов Sub описывает или Function процедуру, доступ к которым осуществляется за пределами определяющего модуля, класса или структуры. Дополнительные сведения см. в разделе Procedures in Visual Basic (Процедуры в Visual Basic).

Процедура Sub может принимать аргументы, такие как константы, переменные или выражения, передаваемые в него вызывающим кодом.

Синтаксис объявления

Синтаксис объявления Sub процедуры выглядит следующим образом:

[modifiers] Sub SubName[(parameterList)]
    ' Statements of the Sub procedure.
End Sub

Можно modifiers указать уровень доступа и сведения о перегрузке, переопределении, совместном использовании и тени. Дополнительные сведения см . в подразделе "Вложенный оператор".

Объявление параметров

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

Синтаксис для каждого параметра в списке параметров выглядит следующим образом:

[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType

Если параметр является необязательным, необходимо также указать значение по умолчанию в рамках его объявления. Синтаксис для указания значения по умолчанию выглядит следующим образом:

Optional [ByVal | ByRef]  parameterName As DataType = defaultValue

Параметры как локальные переменные

Когда элемент управления передается в процедуру, каждый параметр рассматривается как локальная переменная. Это означает, что его время существования совпадает с временем действия процедуры, а ее область — это вся процедура.

Синтаксис вызова

Вы вызываете процедуру Sub явным образом с помощью автономной инструкции вызова. Его нельзя вызывать с помощью его имени в выражении. Необходимо указать значения для всех аргументов, которые не являются необязательными, и необходимо заключить список аргументов в скобки. Если аргументы не указаны, можно также опустить круглые скобки. Использование Call ключевое слово является необязательным, но не рекомендуется.

Синтаксис вызова Sub процедуры выглядит следующим образом:

[Call] SubName[(argumentlist)]

Метод можно вызвать Sub извне класса, который определяет его. Сначала необходимо использовать New ключевое слово для создания экземпляра класса или вызова метода, возвращающего экземпляр класса. Дополнительные сведения см. в разделе "Новый оператор". Затем можно использовать следующий синтаксис для вызова Sub метода в объекте экземпляра:

object.MethodName[(argumentList)]

Иллюстрация объявления и вызова

Sub Следующая процедура сообщает оператору компьютера, какой задачей будет выполняться приложение, а также отображает метку времени. Вместо дедупликации этого кода в начале каждой задачи приложение просто вызывается tellOperator из разных расположений. Каждый вызов передает строку в аргументе task , который определяет запущенную задачу.

Sub tellOperator(ByVal task As String)
    Dim stamp As Date
    stamp = TimeOfDay()
    MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub

В следующем примере показан типичный вызов tellOperator.

tellOperator("file update")

См. также