Процедуры функций (Visual Basic)
Процедура Function
— это ряд инструкций Visual Basic, заключенных в Function
инструкции и End Function
инструкции. Процедура Function
выполняет задачу, а затем возвращает контроль в вызывающий код. При возврате элемента управления он также возвращает значение вызывающему коду.
Каждый раз, когда процедура вызывается, ее операторы выполняются, начиная с первой исполняемой инструкции после Function
инструкции и заканчивая первой End Function
Exit Function
или Return
обнаруженной инструкцией.
Процедуру Function
можно определить в модуле, классе или структуре. Это по Public
умолчанию означает, что вы можете вызывать его из любого места в приложении с доступом к модулю, классу или структуре, в которой он определен.
Процедура Function
может принимать аргументы, такие как константы, переменные или выражения, передаваемые в него вызывающим кодом.
Синтаксис объявления
Синтаксис объявления Function
процедуры выглядит следующим образом:
[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
[Statements]
End Function
Модификаторы могут указывать уровень доступа и сведения о перегрузке, переопределении, совместном использовании и тени. Дополнительные сведения см. в инструкции function.
Вы объявляете каждый параметр таким же образом, как и для вложенных процедур.
Тип данных
Каждая процедура имеет тип данных так же, как и каждая Function
переменная. Этот тип данных указывается As
предложением в Function
инструкции и определяет тип данных значения, возвращаемого функцией в вызывающий код. Ниже приведены примеры объявлений.
Function Yesterday() As Date
End Function
Function FindSqrt(radicand As Single) As Single
End Function
Дополнительные сведения см. в разделе "Части" в инструкции функции.
Возвращаемые значения
Function
Значение, которое процедура отправляет обратно в вызывающий код, называется возвращаемым значением. Процедура возвращает это значение одним из двух способов:
Он использует инструкцию
Return
для указания возвращаемого значения и немедленно возвращает элемент управления вызывающей программе. Это показано в следующем примере.Function FunctionName [(ParameterList)] As ReturnType ' The following statement immediately transfers control back ' to the calling code and returns the value of Expression. Return Expression End Function
Он назначает значение собственному имени функции в одной или нескольких инструкциях процедуры. Элемент управления не возвращается в вызывающую программу, пока не будет выполнена
Exit Function
илиEnd Function
инструкция. Это показано в следующем примере.Function FunctionName [(ParameterList)] As ReturnType ' The following statement does not transfer control back to the calling code. FunctionName = Expression ' When control returns to the calling code, Expression is the return value. End Function
Преимущество назначения возвращаемого значения имени функции заключается в том, что элемент управления не возвращается из процедуры до тех пор, пока он не столкнется с оператором или End Function
операторомExit Function
. Это позволяет при необходимости назначить предварительное значение и настроить его позже.
Дополнительные сведения о возврате значений см. в инструкции function. Сведения о возврате массивов см. в разделе "Массивы".
Синтаксис вызова
Вы вызываете процедуру Function
, включив ее имя и аргументы в правой части инструкции назначения или в выражении. Необходимо указать значения для всех аргументов, которые не являются необязательными, и необходимо заключить список аргументов в скобки. Если аргументы не указаны, можно также опустить круглые скобки.
Синтаксис вызова Function
процедуры выглядит следующим образом.
Список аргументов lvalue=
functionname [(
)]
If ((
имя [(
функции список аргументов )] / 3) <=
выражение ) Then
При вызове Function
процедуры не требуется использовать возвращаемое значение. Если это не так, выполняются все действия функции, но возвращаемое значение игнорируется. MsgBox часто вызывается таким образом.
Иллюстрация объявления и вызова
Function
Следующая процедура вычисляет самую длинную сторону или гипотенузу правого треугольника, учитывая значения для других двух сторон.
Function Hypotenuse(side1 As Double, side2 As Double) As Double
Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function
В следующем примере показан типичный вызов hypotenuse
.
Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)
См. также
- Процедуры
- Подпрограммы
- Процедуры свойств
- Процедуры операторов
- Параметры и аргументы процедуры
- Оператор Function
- Практическое руководство. Создание процедуры, возвращающей значение
- Практическое руководство. Возврат значения из процедуры
- Практическое руководство. Вызов процедуры, возвращающей значение