Процедуры в Visual BasicProcedures in Visual Basic

Процедура — это блок Visual Basic инструкций, заключенных в оператор объявления ( Function ,, Sub Operator , Get , Set ) и End объявлении сопоставления.A procedure is a block of Visual Basic statements enclosed by a declaration statement (Function, Sub, Operator, Get, Set) and a matching End declaration. Все исполняемые инструкции в Visual Basic должны находиться в пределах некоторой процедуры.All executable statements in Visual Basic must be within some procedure.

Вызов процедурыCalling a Procedure

Процедура вызывается из другого места в коде.You invoke a procedure from some other place in the code. Это называется вызовом процедуры.This is known as a procedure call. После завершения процедуры она возвращает управление в код, из которого она была вызвана (вызывающий код).When the procedure is finished running, it returns control to the code that invoked it, which is known as the calling code. Вызывающий код — это оператор или выражение в составе оператора, в которых указывается имя процедуры и передается управление процедуре.The calling code is a statement, or an expression within a statement, that specifies the procedure by name and transfers control to it.

Возврат из процедурыReturning from a Procedure

После завершения процедуры она возвращает управление вызывающему коду.A procedure returns control to the calling code when it has finished running. Для этого можно использовать инструкцию Return, соответствующую инструкцию Exit Function для процедуры или инструкцию End <keyword> инструкции процедуры.To do this, it can use a Return Statement, the appropriate Exit Statement statement for the procedure, or the procedure's End <keyword> Statement statement. Затем управление передается в вызывающий код, следующий за точкой вызова процедуры.Control then passes to the calling code following the point of the procedure call.

  • При использовании оператора Return управление немедленно возвращается в вызывающий код.With a Return statement, control returns immediately to the calling code. Операторы, следующие за оператором Return, не выполняются.Statements following the Return statement do not run. В одной и той же процедуре можно использовать несколько операторов Return.You can have more than one Return statement in the same procedure.

  • При использовании операторов Exit Sub или Exit Function управление немедленно возвращается в вызывающий код.With an Exit Sub or Exit Function statement, control returns immediately to the calling code. Операторы, следующие за оператором Exit, не выполняются.Statements following the Exit statement do not run. В одной и той же процедуре можно использовать несколько операторов Exit и одновременно использовать операторы Return и Exit.You can have more than one Exit statement in the same procedure, and you can mix Return and Exit statements in the same procedure.

  • Если процедура не содержит операторов Return или Exit, она завершается оператором End Sub, End Function, End Get или End Set, который следует за последним оператором в составе процедуры.If a procedure has no Return or Exit statements, it concludes with an End Sub or End Function, End Get, or End Set statement following the last statement of the procedure body. При использовании оператора End управление немедленно возвращается в вызывающий код.The End statement returns control immediately to the calling code. В процедуре можно использовать только один оператор End.You can have only one End statement in a procedure.

Параметры и аргументыParameters and Arguments

В большинстве случаев процедура должна работать с разными данными при каждом вызове.In most cases, a procedure needs to operate on different data each time you call it. Эти данные можно передать в процедуру при ее вызове.You can pass this information to the procedure as part of the procedure call. В процедуре можно определить параметры (ноль или более), каждый из которых представляет одно из передаваемых значений.The procedure defines zero or more parameters, each of which represents a value it expects you to pass to it. Каждому параметру в определении процедуры соответствует аргумент при вызове процедуры.Corresponding to each parameter in the procedure definition is an argument in the procedure call. Аргумент представляет значение, которое передается в соответствующий параметр для заданного вызова процедуры.An argument represents the value you pass to the corresponding parameter in a given procedure call.

Типы процедурTypes of Procedures

Visual Basic использует несколько типов процедур:Visual Basic uses several types of procedures:

  • Подпрограммы выполняют действия, но не возвращают значение в вызывающий код.Sub Procedures perform actions but do not return a value to the calling code.

  • Процедуры обработки событий — это процедуры Sub, которые выполняются в ответ на событие, вызванное действием пользователя или наступлением определенных условий в программе.Event-handling procedures are Sub procedures that execute in response to an event raised by user action or by an occurrence in a program.

  • Функции возвращают значение в вызывающий код.Function Procedures return a value to the calling code. Они могут выполнять другие действия перед возвратом.They can perform other actions before returning.

    Некоторые функции, написанные на C#, возвращают значение по ссылке.Some functions written in C# return a reference return value. Вызывающие функции могут изменять возвращаемое значение, и это изменение отражается в состоянии вызываемого объекта.Function callers can modify the return value, and this modification is reflected in the state of the called object. Начиная с Visual Basic 2017, в коде можно использовать значения, возвращаемые по ссылке, но нельзя возвращать значения по ссылке.Starting with Visual Basic 2017, Visual Basic code can consume reference return values, although it cannot return a value by reference. Дополнительные сведения см. в разделе Значения, возвращаемые по ссылке.For more information, see Reference return values.

  • Процедуры свойств возвращают и задают значения свойств для объектов или модулей.Property Procedures return and assign values of properties on objects or modules.

  • Процедуры операторов определяют поведение стандартного оператора, если один или оба операнда представляют собой недавно определенный класс или структуру.Operator Procedures define the behavior of a standard operator when one or both of the operands is a newly-defined class or structure.

  • В универсальных процедурах в Visual Basic определяются параметры типа в дополнение к обычным параметрам процедуры. Это позволяет передавать параметры определенного типа из вызывающего кода при каждом вызове.Generic Procedures in Visual Basic define one or more type parameters in addition to their normal parameters, so the calling code can pass specific data types each time it makes a call.

Процедуры и структурированный кодProcedures and Structured Code

Каждая строка исполняемого кода в приложении должна находиться внутри некоторой процедуры, такой как Main, calculate или Button1_Click.Every line of executable code in your application must be inside some procedure, such as Main, calculate, or Button1_Click. Если разделить большие процедуры на более мелкие, код будет более удобным для чтения.If you subdivide large procedures into smaller ones, your application is more readable.

Процедуры можно использовать для реализации повторяющихся или общих задач, таких как часто используемые вычисления, операции с текстом и элементами управления и операции с базами данных.Procedures are useful for performing repeated or shared tasks, such as frequently used calculations, text and control manipulation, and database operations. Процедуры можно вызывать из различных мест в коде; таким образом, их можно использовать в качестве стандартных блоков для создания приложения.You can call a procedure from many different places in your code, so you can use procedures as building blocks for your application.

Структурирование кода с помощью процедур предоставляет следующие преимущества.Structuring your code with procedures gives you the following benefits:

  • Процедуры позволяют разбить программу на отдельные логические блоки.Procedures allow you to break your programs into discrete logical units. Отлаживать такие отдельные блоки легче, чем всю программу целиком.You can debug separate units more easily than you can debug an entire program without procedures.

  • После разработки процедур для использования в одной программе их можно использовать в других программах без изменений или с небольшими изменениями.After you develop procedures for use in one program, you can use them in other programs, often with little or no modification. Это помогает избежать дублирования кода.This helps you avoid code duplication.

См. такжеSee also