参数列表 (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 子句。

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

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

    不能在同一个参数列表中同时使用 OptionalParamArray

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

  • 传入机制。 每个参数的默认机制是 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?")

请参阅