如何:按名称向过程传递参数
更新:2007 年 11 月
在调用 Sub 或 Function 过程时,无论对应参数在过程定义中出现的顺序如何,都可以按名称将参数传递给它。
按名称传递参数使调用代码更容易阅读,因为这种机制给过程调用中的参数值赋予了意义。如果过程具有可选参数,按名称传递也更易于跟踪传递的参数和省略的参数。
有关按名称提供参数的规则和限制,请参见 通过位置和通过名称的参数传递。
按名称传递参数
检查过程声明的源代码,以确定参数名称的确切拼写。
在调用代码中,以正常方式准备过程调用,将参数列表置于过程名称后的括号中。
对于要按名称传递的每个参数,提供参数的声明名称,后面跟一个冒号和一个等号 (:=),然后跟传递给该参数的值。
可以按任何顺序提供命名的参数,但必须在提供任何命名参数之前先提供所有位置参数。
示例
下面的示例演示一个带有三个参数的 Sub 过程,以及一个按名称传递这些参数的 Call 语句 (Visual Basic)。
Sub studentInfo(ByVal name As String, _
Optional ByVal age As Short = 0, _
Optional ByVal birth As Date = #1/1/2000#)
Debug.WriteLine("Name = " & name & _
"; age = " & CStr(age) & _
"; birth date = " & CStr(birth))
End Sub
Call studentInfo(age:=19, birth:=#9/21/1981#, name:="Mary")
在按名称传递参数时,提供这些参数的顺序不必与过程声明这些参数的顺序相同。
编译代码
请确保参数列表中的参数名称与过程声明的名称完全匹配。