如何:为过程定义可选参数

更新:2007 年 11 月

您可以将某个过程参数指定为可选,使调用代码在调用过程时无需为其提供参数。执行此操作时,请定义未提供参数时过程使用的默认值。

您可以定义多个可选参数,但所有可选参数都必须位于参数列表末尾。所有必选参数都必须位于每个可选参数的前面。

定义可选参数

  1. 在过程声明中,在参数列表中的参数名前面加上 Optional 关键字。

  2. 像往常一样在参数名后面加上 As 子句,并在 As 子句后面加上等号 (=)。

  3. 在等号后面加上该参数的默认值。这必须是常数表达式,使编译器在编译时能够完全计算该表达式。

  4. 必须将后面的每个参数声明为 Optional。

示例

下面的示例演示带可选参数的过程声明。

Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
    If office = "QJZ" Then
        Debug.WriteLine("office not supplied -- using Headquarters")
        office = "Headquarters"
    End If
    ' Insert code to notify headquarters or specified office.
End Sub

如果调用代码没有为参数列表中的 office 提供值,Visual Basic 会提供默认值“QJZ”。

编译代码

必须为过程声明中的每个可选参数指定默认值。请确保每个默认值均为编译器在编译时能够计算的常数。

请参见

任务

如何:调用带有可选参数的过程

如何:确定是否提供了可选参数

概念

过程参数和变量

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

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

可选参数

参数数组

过程重载

参考

Optional (Visual Basic)

ParamArray