Параметры и аргументы процедуры

Обновлен: Ноябрь 2007

В большинстве случаев процедуре требуется некоторая информация об обстоятельствах, при которых она была вызвана. Процедура, которая выполняет повторяющуюся задачу, может использовать разную информацию при разных вызовах. Такая информация состоит из переменных, констант и выражений, которые передаются процедуре при ее вызове.

Параметр представляет значение, которое необходимо указать процедуре при ее вызове. В объявлении процедуры определяются ее параметры.

Можно определить процедуру без параметров, с одним или несколькими параметрами. Часть определения процедуры, указывающей параметры, называется списком параметров.

Аргумент представляет значение, указанное в параметрах процедуры при ее вызове. Код вызова указывает аргументы при вызове процедуры. Часть вызова процедуры, которая определяет аргументы, называется списком аргументов.

Ниже показан код вызова процедуры 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) установлен в Off, предложение As необязательно, кроме тех случаев, когда оно используется хотя бы одним параметром: в этом случае его должны использовать все параметры. Если проверка типа установлена в On, As предложение является обязательным для всех параметров процедуры.

Если код вызова ожидает указания аргумента с типом данных, отличающимся от типа данных соответствующего параметра, например параметры Byte и String, он должен выполнить одно из следующих действий:

  • Указать только аргументы с типами данных, которые расширяются к типу данных параметра;

  • Установить Option Strict Off, чтобы разрешить неявные сужающие преобразования;

  • Использовать ключевое слово для явного преобразования типа данных.

Параметры типа

Универсальная процедура также определяет один или несколько параметров типа в дополнение к его обычным параметрам. Универсальная процедура позволяет коду вызова передать различные типы данных при каждом вызове процедуры. Таким образом она может приспособить типы данных к требованиям каждого отдельного вызова. См. раздел Универсальные процедуры в Visual Basic.

См. также

Задачи

Практическое руководство. Определение параметра для процедуры

Практическое руководство. Передача аргументов в процедуру

Основные понятия

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

Процедуры Sub

Процедуры Function

Процедуры свойств

Процедуры операторов

Передача аргументов по значению или по ссылке

Перегрузка процедур

Другие ресурсы

Преобразование типов в Visual Basic