Процедуры в Visual Basic
Процедура — это блок операторов Visual Basic, заключенных в оператор объявления (Function
, Sub
, Operator
, Get
) Set
и соответствующее End
объявление. Все исполняемые инструкции в Visual Basic должны находиться в некоторых процедурах.
Вызов процедуры
Процедура вызывается из другого места в коде. Это называется вызовом процедуры. После завершения процедуры она возвращает управление в код, из которого она была вызвана (вызывающий код). Вызывающий код — это оператор или выражение в составе оператора, в которых указывается имя процедуры и передается управление процедуре.
Возврат из процедуры
После завершения процедуры она возвращает управление вызывающему коду. Для этого он может использовать оператор Return, соответствующий оператор exit для процедуры или оператор конечного <ключевого слова> процедуры. Затем управление передается в вызывающий код, следующий за точкой вызова процедуры.
При использовании оператора
Return
управление немедленно возвращается в вызывающий код. Операторы, следующие за операторомReturn
, не выполняются. В одной и той же процедуре можно использовать несколько операторовReturn
.При использовании операторов
Exit Sub
илиExit Function
управление немедленно возвращается в вызывающий код. Операторы, следующие за операторомExit
, не выполняются. В одной и той же процедуре можно использовать несколько операторовExit
и одновременно использовать операторыReturn
иExit
.Если процедура не содержит операторов
Return
илиExit
, она завершается операторомEnd Sub
,End Function
,End Get
илиEnd Set
, который следует за последним оператором в составе процедуры. При использовании оператораEnd
управление немедленно возвращается в вызывающий код. В процедуре можно использовать только один операторEnd
.
Параметры и аргументы
В большинстве случаев процедура должна работать с разными данными при каждом вызове. Эти данные можно передать в процедуру при ее вызове. В процедуре можно определить параметры (ноль или более), каждый из которых представляет одно из передаваемых значений. Каждому параметру в определении процедуры соответствует аргумент при вызове процедуры. Аргумент представляет значение, которое передается в соответствующий параметр для заданного вызова процедуры.
Типы процедур
Visual Basic использует несколько типов процедур:
Подпрограммы выполняют действия, но не возвращают значение в вызывающий код.
Процедуры обработки событий — это процедуры
Sub
, которые выполняются в ответ на событие, вызванное действием пользователя или наступлением определенных условий в программе.Функции возвращают значение в вызывающий код. Они могут выполнять другие действия перед возвратом.
Некоторые функции, написанные на C#, возвращают значение по ссылке. Вызывающие функции могут изменять возвращаемое значение, и это изменение отражается в состоянии вызываемого объекта. Начиная с Visual Basic 2017, в коде можно использовать значения, возвращаемые по ссылке, но нельзя возвращать значения по ссылке. Дополнительные сведения см. в разделе Значения, возвращаемые по ссылке.
Процедуры свойств возвращают и задают значения свойств для объектов или модулей.
Процедуры операторов определяют поведение стандартного оператора, если один или оба операнда представляют собой недавно определенный класс или структуру.
В универсальных процедурах в Visual Basic определяются параметры типа в дополнение к обычным параметрам процедуры. Это позволяет передавать параметры определенного типа из вызывающего кода при каждом вызове.
Процедуры и структурированный код
Каждая строка исполняемого кода в приложении должна находиться внутри некоторой процедуры, такой как Main
, calculate
или Button1_Click
. Если разделить большие процедуры на более мелкие, код будет более удобным для чтения.
Процедуры можно использовать для реализации повторяющихся или общих задач, таких как часто используемые вычисления, операции с текстом и элементами управления и операции с базами данных. Процедуры можно вызывать из различных мест в коде; таким образом, их можно использовать в качестве стандартных блоков для создания приложения.
Структурирование кода с помощью процедур предоставляет следующие преимущества.
Процедуры позволяют разбить программу на отдельные логические блоки. Отлаживать такие отдельные блоки легче, чем всю программу целиком.
После разработки процедур для использования в одной программе их можно использовать в других программах без изменений или с небольшими изменениями. Это помогает избежать дублирования кода.