Параметры и аргументы процедуры (Visual Basic)
В большинстве случаев процедура нуждается в некоторых обстоятельствах, в которых она была вызвана. Процедура, выполняющая повторяющиеся или общие задачи, использует разные сведения для каждого вызова. Эта информация состоит из переменных, констант и выражений, которые передаются в процедуру при вызове.
Параметр представляет значение, которое предполагается, что процедура будет предоставляться при вызове. Объявление процедуры определяет его параметры.
Процедуру можно определить без параметров, одного параметра или нескольких. Часть определения процедуры, указывающая параметры, называется списком параметров.
Аргумент представляет значение, которое вы предоставляете параметру процедуры при вызове процедуры. Вызывающий код предоставляет аргументы при вызове процедуры. Часть вызова процедуры, указывающая аргументы, называется списком аргументов.
На следующем рисунке показан код, вызывающий процедуру safeSquareRoot
из двух разных мест. Первый вызов передает значение переменной x
(4.0) параметру number
, а возвращаемое значение в root
(2.0) назначается переменной y
. Второй вызов передает литеральное значение 9.0 number
и назначает возвращаемое значение (3.0) переменной z
.
Дополнительные сведения см. в разделе "Различия между параметрами и аргументами".
Тип данных параметра
Тип данных для параметра определяется с помощью предложения в его объявлении As
. Например, следующая функция принимает строку и целое число.
Function appointment(ByVal day As String, ByVal hour As Integer) As String
' Insert code to return any appointment for the given day and time.
Return "appointment"
End Function
Если параметр проверки типа (option Strict Statement) является Off
As
необязательным, за исключением того, что если один параметр использует его, все параметры должны использовать его. Если проверка типов имеет значение On
, As
предложение требуется для всех параметров процедуры.
Если вызывающий код ожидает предоставления аргумента с типом данных, отличным от типа его соответствующего параметра, например Byte
String
параметра, он должен выполнить одно из следующих действий:
Укажите только аргументы с типами данных, расширяющими тип данных параметров;
Задайте для
Option Strict Off
разрешения неявных сужающих преобразований; илиИспользуйте ключевое слово преобразования для явного преобразования типа данных.
Параметры типа
Универсальная процедура также определяет один или несколько параметров типа в дополнение к обычным параметрам. Универсальная процедура позволяет вызывающему коду передавать различные типы данных каждый раз при вызове процедуры, поэтому он может адаптировать типы данных к требованиям каждого отдельного вызова. См. раздел Generic Procedures in Visual Basic.