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


Список параметров (Visual Basic)

Задает параметры, ожидаемые процедурой при вызове. Несколько параметров разделяются запятыми. Ниже представлен синтаксис для одного параметра.

[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ] 
parametername[( )] [ As parametertype ] [ = defaultvalue ]

Части

  • attributelist
    Необязательный. Список атрибутов, которые применяются к данному параметру. Необходимо заключить Список атрибутов (Visual Basic) в угловые скобки ("<" и ">").

  • Optional
    Необязательный. Указывает, что этот параметр не требуется при вызове процедуры.

  • ByVal
    Необязательный. Указывает, что процедура не может заменить или переназначить основной элемент переменной соответствующего аргумента в коде вызова.

  • ByRef
    Необязательный. Указывает на то, что процедура может изменять основной элемент переменной в вызывающем коде так же, как он изменяется самим вызывающим кодом.

  • ParamArray
    Необязательный. Указывает, что последний параметр в списке параметров является дополнительным массивом элементов заданного типа данных. Это позволяет передавать произвольное число аргументов в процедуру.

  • parametername
    Обязательный. Имя локальной переменной, представляющей параметр.

  • parametertype
    Требуется, если для Option Strict установлено значение On. Тип данных локальной переменной, представляющей параметр.

  • defaultvalue
    Обязателен для Optional параметров. Любая константа или константное выражение, вычисляемое значение которого имеет тип данных параметра. Если тип — Object, класс, интерфейс, массив или структура, его значением по умолчанию может быть только Nothing.

Заметки

Параметры заключаются в круглые скобки и разделяются запятыми. Параметр может быть объявлен с любым типом данных. Если не указан parametertype, то по умолчанию он имеет значение Object.

Когда код вызова вызывает процедуру, он передает аргумент для каждого обязательного параметра. Дополнительные сведения см. в разделе Различия между параметрами и аргументами (Visual Basic).

Аргумент, передаваемый кодом вызова для каждого параметра, является указателем на базовый элемент в коде вызова. Если этот элемент является неизменяемым (константа, литерал, перечисление или выражение), то никакой код не сможет его изменить. Если это элемент изменяемый (объявленная переменная, поле, свойство, элемент массива или элемент структуры), вызывающий код может изменить его. Дополнительные сведения см. в разделе Различия между аргументами Modifiable и Nonmodifiable (Visual Basic).

Если элемент переменной передается ByRef, в процедуре также можно его изменить. Дополнительные сведения см. в разделе Различия между передачей аргумента по значению и по ссылке (Visual Basic).

Правила

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

  • Необязательные параметры. Если используется модификатор Optional для параметра, все последующие параметры в списке должны также быть дополнительными и быть объявлены с помощью модификатора Optional.

    Каждое объявление дополнительного параметра необходимо указать в предложении defaultvalue.

    Дополнительные сведения см. в разделе Необязательные параметры (Visual Basic).

  • Массивы параметров. Необходимо указать ByVal для параметра ParamArray.

    Нельзя использовать одновременно и Optional, и ParamArray в одном списке параметров.

    Дополнительные сведения см. в разделе Массивы параметров (Visual Basic).

  • Способ передачи. Способом по умолчанию для каждого аргумента является ByVal, что означает, что процедура не может изменять базовый элемент переменной. Однако если элемент является ссылочным типом, процедура может изменять содержимое или члены базового объекта, даже если она не может заменить или переназначить сам объект.

  • Имена параметра Если тип данных параметра является массивом, нужно parametername ограничить круглыми скобками. Дополнительные сведения об именах параметра см. в разделе Имена объявленных типов (Visual Basic).

Пример

В следующем примере показана процедура Function, определяющая два параметра.

Public Function howMany(ByVal ch As Char, ByVal st As String) As Integer
End Function
Dim howManyA As Integer = howMany("a"c, "How many a's in this string?")

См. также

Задачи

Практическое руководство. Разбиение и объединение инструкций в коде (Visual Basic)

Ссылки

Оператор Function (Visual Basic)

Оператор Sub (Visual Basic)

Оператор Declare

Оператор Structure

Оператор Option Strict

Атрибуты (C# и Visual Basic)

DllImportAttribute