过程参数和自变量 (Visual Basic)
在大多数情况下,过程需要一些有关调用它的情况的信息。 执行重复或共享任务的过程对每个调用使用不同的信息。 此信息由调用过程时传递给过程的变量、常量和表达式组成。
参数表示调用过程时过程需要你提供的值。 过程声明定义了其参数。
你可以定义没有参数、有一个参数或有多个参数的过程。 指定参数的过程定义的部分称为参数列表。
自变量表示调用过程时你提供给过程参数的值。 调用代码在调用过程时提供自变量。 指定自变量的过程调用部分称为自变量列表。
下图显示了从两个不同的位置调用过程 safeSquareRoot
的代码。 第一个调用将变量 x
(4.0) 的值传递给参数 number
,root
(2.0) 中的返回值将赋予变量 y
。 第二个调用将文本值 9.0 传递给 number
,并将返回值 (3.0) 赋予变量 z
。
有关详细信息,请参阅参数和自变量之间的差异。
参数数据类型
通过在其声明中使用 As
子句来定义参数的数据类型。 例如,以下函数接受字符串和整数。
Function appointment(ByVal day As String, ByVal hour As Integer) As String
' Insert code to return any appointment for the given day and time.
Return "appointment"
End Function
如果类型检查开关(Option Strict Statement)是Off
As
可选的,则子句是可选的,但如果有一个参数使用它,则所有参数都必须使用它。 如果类型检查为 On
,则所有过程参数都需要 As
子句。
如果调用代码希望提供数据类型与其对应参数的数据类型不同的自变量,例如将 Byte
提供给 String
参数,则它必须执行以下操作之一:
仅提供数据类型扩大为参数数据类型的自变量;
设置为
Option Strict Off
以允许隐式收缩转换;或使用转换关键字显式转换数据类型。
类型参数
泛型过程除了定义其普通参数外,还定义了一个或多个类型参数。 泛型过程允许调用代码每次调用过程时传递不同的数据类型,因此它可以根据每个单独调用的要求定制数据类型。 请参阅 Generic Procedures in Visual Basic。