Поделиться через


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

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

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

Дополнительные сведения см. в разделе Параметры и аргументы процедуры.

Определение параметра процедуры

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

  2. Выберите тип данных параметра.

  3. Укажите имя параметра и используйте предложение As для указания типа данных.

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

  5. Перед именем параметра укажите ByVal или ByRef, чтобы задать механизм передачи. Дополнительные сведения см. в разделе Различия между передачей аргумента по значению и по ссылке.

  6. Если аргумент является необязательным, сначала укажите перед механизмом передачи Optional (Visual Basic), а затем добавьте в тип данных параметр со знаком равенства (=) и значение по умолчанию.

    В следующем примере определяется структура процедуры Sub с тремя параметрами. Первые два параметра являются обязательными, а третий — необязательным. Объявления параметров в списке параметров разделяются запятыми.

    Sub updateCustomer(ByRef c As customer, ByVal region As String, _
      Optional ByVal level As Integer = 0)
      ' Insert code to update a customer object.
    End Sub
    

    Первый параметр принимает объект customer, updateCustomer может непосредственно обновлять переменную, передаваемую в c, так как аргумент передается ByRef. Процедура не может изменить значения последних двух аргументов, поскольку они передаются ByVal.

    Если вызывающий код не предоставляет значение параметра level, Visual Basic устанавливает его значение по умолчанию (0).

    Если переключатель проверки типов (Оператор Option Strict) имеет значение Off, предложение As необязательно при определении параметров. Однако, если любой из параметров использует предложение As, для других также необходимо его использование. Если переключатель проверки типов имеет значение On, предложение As является обязательным для каждого определения параметра.

    Задание типов данных для всех элементов программирования называется строгая типизация. При установке Option Strict On, Visual Basic выполняет строгую типизацию. Настоятельно рекомендуется делать это по следующим причинам:

    • Это позволяет IntelliSense поддерживать переменные и параметры. Это позволяет видеть их свойства и другие члены при их вводе в код.

    • Это позволяет компилятору выполнять проверку типов. Благодаря этому обнаруживаются операторы, которые не выполняются в ходе работы программы из-за таких ошибок, например как переполнение. Также обнаруживаются вызовы методов для объекта, который их не поддерживает.

    • Обеспечивается более быстрое выполнение кода. Одной из причин, вызывающих такой эффект, является то, что если не указать тип данных для элемента программирования, компилятор Visual Basic присваивает ему тип Object. Скомпилированному коду может потребоваться прямое и обратное преобразование Object и других типов данных, что приводит к снижению производительности.

См. также

Задачи

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

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

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

Процедуры Sub

Процедуры Function

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

Рекурсивные процедуры

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

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

Объектно-ориентированное программирование в Visual Basic