参数列表 (Visual Basic)

指定调用过程时所需的参数。 多个参数用逗号分隔。 下面是一个参数的语法。

语法

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

部件

attributelist
可选。 应用于此参数的属性列表。 必须将 属性列表 括在尖括号(“<”和“)>中。

Optional
可选。 指定调用过程时不需要此参数。

ByVal
可选。 指定该过程不能替换或重新分配调用代码中相应参数的基础变量元素。

ByRef
可选。 指定该过程可以按照调用代码本身的相同方式修改调用代码中的基础变量元素。

ParamArray
可选。 指定参数列表中的最后一个参数是指定数据类型元素的可选数组。 这样,调用代码就可以将任意数量的参数传递给过程。

parametername
必填。 表示参数的局部变量的名称。

parametertype
如果 Option StrictOn,则是必需的。 表示参数的局部变量的数据类型。

defaultvalue
参数是必需的 Optional 。 计算结果为参数数据类型的任何常量或常量表达式。 如果类型为 Object类、接口、数组或结构,则默认值只能是 Nothing

注解

参数用括号括起来,用逗号分隔。 可以使用任何数据类型声明参数。 如果未指定 parametertype,则默认为 Object

调用代码调用过程时,它会向每个必需 参数传递一个参数 。 有关详细信息,请参阅参数和自变量之间的差异

调用代码传递给每个参数的参数是指向调用代码中基础元素的指针。 如果此元素 是不可变量 的(常量、文本、枚举或表达式),则任何代码都不可能更改它。 如果它是 变量 元素(声明的变量、字段、属性、数组元素或结构元素),则调用代码可以更改它。 有关详细信息,请参阅 “可修改参数与不可修改参数之间的差异”。

如果传递 ByRef变量元素,该过程也可以更改它。 有关详细信息,请参阅 按值传递参数与按引用传递参数之间的差异

规则

  • 括弧。 如果指定参数列表,则必须将其括在括号中。 如果没有参数,仍可使用括号将空列表括起来。 这通过阐明元素是过程来提高代码的可读性。

  • 可选参数。 如果在参数上使用 Optional 修饰符,列表中的所有后续参数也必须是可选的,并且使用 Optional 修饰符声明。

    每个可选参数声明都必须提供子 defaultvalue 句。

    有关详细信息,请参阅 可选参数

  • 参数数组。 必须指定 ByVal 参数 ParamArray

    不能同时使用这两个参数 Optional ,也不能 ParamArray 在同一参数列表中。

    有关详细信息,请参阅 参数数组

  • 传递机制。 每个参数的默认机制都是 ByVal,这意味着该过程无法更改基础变量元素。 但是,如果元素是引用类型,该过程可以修改基础对象的内容或成员,即使它不能替换或重新分配对象本身。

  • 参数名称。 如果参数的数据类型是数组,请紧跟 parametername 括号。 有关参数名称的详细信息,请参阅 声明的元素名称

示例:

下面的示例演示定义两个 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?")

另请参阅