参数列表

更新:2007 年 11 月

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

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

各部分说明

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

  • Optional
    可选。指定调用过程时此参数不是必选项。

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

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

  • ParamArray
    可选。指定参数列表中的最后一个参数是一个可选的、数据类型为指定的数据类型的元素数组。它允许调用代码向过程传递任意数量的参数。

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

  • parametertype
    如果 Option Strict 为 On,则为必选项。表示参数的局部变量的数据类型。

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

备注

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

当调用代码调用过程时,它将参数 (Argument) 传递给每一个所需的参数 (parameter)。 有关更多信息,请参见 参数和变量之间的差异

调用代码传递给每个参数 (parameter) 的参数 (Argument) 为一个指针,它指向调用代码中的基础元素。如果此元素为不可变元素(即常数、文本、枚举或表达式),则任何代码都无法更改它。如果此元素为可变元素(即已声明的变量、字段、属性、数组元素或结构元素),则调用代码可以对其进行更改。有关更多信息,请参见可更改和不可更改参数之间的差异

如果可变元素的传入机制为 ByRef,则过程也可以对其进行更改。有关更多信息,请参见 通过值传递参数和通过引用传递参数之间的差异

规则

  • **括号。**如果指定了参数 (parameter) 列表,必须将此列表置于括号内。如果没有参数 (parameter),您仍然可以用括号将空列表括起来。这样做阐明了此元素是一个过程,从而增加了代码的可读性。

  • **可选参数 (parameter)。**如果对某个参数使用了 Optional 修饰符,则列表中此参数后面的所有参数也必须为可选参数,并且必须使用 Optional 修饰符声明。

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

  • **参数 (parameter) 数组。**您必须为 ParamArray 参数指定 ByVal。

    不能在同一个参数列表中同时使用 Optional 和 ParamArray。

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

  • **参数 (parameter) 名称。**如果参数的数据类型为数组,请在 parametername 后紧跟括号。有关参数 (parameter) 名称的更多信息,请参见 已声明元素的名称

示例

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

请参见

任务

如何:在代码中拆分和合并语句

概念

属性的应用

参考

Function 语句 (Visual Basic)

Sub 语句 (Visual Basic)

Declare 语句

Structure 语句

Option Strict 语句

DllImportAttribute

其他资源

Visual Basic 中的属性 (Attribute)