Практическое руководство. Передача аргументов в процедуру по именам
Обновлен: Ноябрь 2007
При вызове процедуры Sub или Function можно передать аргументы по имени вне зависимости от порядка, в котором соответствующие параметры отображаются в определении процедуры.
Передача аргументов по имени упрощает чтение кода, так как это делает понятными значения аргументов в вызове процедуры. Если процедура имеет необязательные параметры, передача по имени также упрощает отслеживание переданных и пропущенных аргументов.
Правила и ограничения при передаче аргументов по имени описаны в разделе Передача аргумента по позиции и по имени.
Для передачи аргументов по имени
Обратитесь к исходному коду объявления процедуры, чтобы определить точное написание имени параметра.
В коде вызова подготовьте вызов процедуры обычным способом, со списком аргументов в круглых скобках после имени процедуры.
Для каждого аргумента, который необходимо передать по имени, укажите имя объявленного параметра с двоеточием и знаком равенства (:=), за которым следует значение, передаваемое для аргумента.
Аргументы можно передать в любом порядке, однако необходимо указать все позиционные аргументы перед указанием всеx именованных аргументов.
Пример
В следующем примере показана процедура Sub с тремя параметрами и Оператор Call (Visual Basic), которая передает аргументы в эти параметры по имени.
Sub studentInfo(ByVal name As String, _
Optional ByVal age As Short = 0, _
Optional ByVal birth As Date = #1/1/2000#)
Debug.WriteLine("Name = " & name & _
"; age = " & CStr(age) & _
"; birth date = " & CStr(birth))
End Sub
Call studentInfo(age:=19, birth:=#9/21/1981#, name:="Mary")
При передаче аргументов по имени необязательно предоставлять их в том же порядке, в котором их объявляет процедура.
Компиляция кода
Убедитесь, что имя параметра в списке аргументов точно соответствует имени, объявленному процедурой.
См. также
Задачи
Практическое руководство. Передача аргументов в процедуру
Основные понятия
Параметры и аргументы процедуры
Передача аргументов по значению или по ссылке
Передача аргумента по позиции и по имени