参数数组

更新:2007 年 11 月

通常,调用的过程所包含的参数不能超出过程声明指定的数目。当需要数量不确定的变量时,可声明一个参数数组,它允许过程接受一组值作为参数。定义过程时,并不需要知道参数数组中的元素数。每次过程调用都单独确定数组的大小。

声明 ParamArray

使用 ParamArray 关键字表示参数列表中的参数数组。适用以下规则:

  • 一个过程只能定义一个参数数组,而且此参数数组必须是过程定义中的最后一个参数。

  • 参数数组必须通过值传递。在过程定义中显式使用 ByVal 关键字是良好的编程习惯。

  • 参数数组是自动可选的。其默认值是参数数组元素类型的空一维数组。

  • 参数数组前面的所有参数都是必需的。参数数组必须是唯一的可选参数。

有关更多信息,请参见如何:定义参数数量不确定的过程

调用 ParamArray

调用定义参数数组的过程时,可以通过以下一种方式提供变量:

  • 不提供任何参数,即您可省略 ParamArray 参数。这种情况下给过程传递的是空数组。您还可以传递 Nothing (Visual Basic) 关键字,效果相同。

  • 包含任意数量的参数的列表,各参数之间用逗号分隔。每个参数的数据类型都必须可以隐式转换成 ParamArray 元素类型。

  • 元素类型与参数数组的元素类型相同的数组。

在任何情况下,过程中的代码都将参数数组视为一个一维数组,此数组的元素的数据类型与 ParamArray 数据类型相同。

有关更多信息,请参见如何:调用参数数量不确定的过程

安全说明:

每当处理可能变得无限大的数组时,将存在耗尽应用程序的某种内部容量的风险。如果接受一个参数数组,则应该测试调用代码传递给此数组的数组大小。如果此数组对应用程序来说太大,请执行适当的操作。有关更多信息,请参见如何:确定数组的大小

请参见

概念

Visual Basic 中的过程

过程参数和变量

通过值和通过引用传递参数

通过位置和通过名称的参数传递

可选参数

过程重载

Visual Basic 中的类型检查

参考

Optional (Visual Basic)

UBound 函数 (Visual Basic)

其他资源

数组 (Visual Basic)