如何:为过程定义参数 (Visual Basic)
“参数”允许调用代码在调用过程时将值传递到过程。 声明过程的每个参数与声明变量的方法一样,都是指定其名称和数据类型。 也可以指定传递机制,以及参数是否可选。
有关更多信息,请参见 过程参数和变量 (Visual Basic)。
定义过程参数
在过程声明中,将参数名称添加到过程的参数列表,用逗号将它与其他参数分隔。
决定参数的数据类型。
在参数名称后加上 As 子句来指定数据类型。
决定用于参数的传递机制。 通常按值传递参数,除非希望过程能够更改其在调用代码中的值。
将带有 ByVal (Visual Basic) 或 ByRef (Visual Basic) 的参数名称放在前面,以指定传递机制。 有关更多信息,请参见 通过值传递参数和通过引用传递参数之间的差异 (Visual Basic)。
如果参数为可选项,将带有 Optional (Visual Basic) 的传递机制放在前面,后面是带有等号 (=) 的参数数据类型以及一个默认值。
下面的示例定义一个带有三个参数的 Sub 过程的大纲。 前两个参数为必选,第三个参数为可选。 参数声明在参数列表中以逗号分隔。
Sub updateCustomer(ByRef c As customer, ByVal region As String, Optional ByVal level As Integer = 0) ' Insert code to update a customer object. End Sub
第一个参数接受一个 customer 对象,updateCustomer 可以直接更新传递到 c 的变量,因为此参数的传递方式为 ByRef (Visual Basic)。 过程无法更改最后两个参数的值,因为它们的传递方式为 ByVal (Visual Basic)。
如果调用代码不提供 level 参数的值,则 Visual Basic 将其设置为默认值 0。
如果类型检查开关 (Option Strict 语句) 为 Off,则定义参数时 As 子句为可选项。 但是,如果任何一个参数使用 As 子句,则所有参数都使用此子句。 如果类型检查开关为 On,则对每个参数定义来说 As 子句为必选。
为所有编程元素指定数据类型称为“强类型”。 设置 Option Strict On 时,Visual Basic 强制转换为强类型。 强烈建议执行此操作,原因如下:
它为变量和参数启用 IntelliSense 支持。 这允许您在键入代码时看到它们的属性和其他成员。
允许编译器执行类型检查。 这将有助于捕捉因溢出等错误而在运行时失败的语句。 这也可以在不支持方法的对象上捕捉对方法的调用。
使代码的执行速度更快。 其中一个原因是如果不为编程元素指定数据类型,Visual Basic 编译器会将其分配为 Object 类型。 已编译的代码可能必须在 Object 和其他数据类型之间来回转换,这样将降低性能。