Sub 过程 (Visual Basic)
Sub
过程是由 Sub
和 End Sub
语句括起来的一系列 Visual Basic 语句。 此 Sub
过程执行一个任务,然后将控制返回给调用代码,但它不会将值返回给调用代码。
每次调用该过程时,它的语句都会执行,从 Sub
语句后面的第一个可执行语句开始运行,以第一个遇到的 End Sub
、Exit Sub
或 Return
语句结束。
可以在模块、类和结构中定义 Sub
过程。 它默认是 Public
的,这意味着你可以从有权访问在其中定义它的模块、类或结构的应用程序中的任何位置调用它。 “方法”这一术语描述从它的定义模块、类或结构外部访问的 Sub
或 Function
过程。 有关详细信息,请参阅过程。
Sub
过程可以采用由调用代码传递给它的参数,例如常量、变量或表达式。
声明语法
声明 Sub
过程的语法如下:
[modifiers] Sub SubName[(parameterList)]
' Statements of the Sub procedure.
End Sub
modifiers
可以指定有关重载、替代、共享和影子处理的访问级别和信息。 有关详细信息,请参阅 Sub 语句。
参数声明
声明每个过程参数的方式与声明变量的方式类似,即指定参数名称和数据类型。 还可以指定传递机制,并指定参数是否可选或是否是参数数组。
参数列表中每个参数的语法如下所示:
[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType
如果是可选参数,还必须提供默认值作为其声明的一部分。 用于指定默认值的语法如下所示:
Optional [ByVal | ByRef] parameterName As DataType = defaultValue
参数作为局部变量
当控制传递给过程时,每个参数都被视为局部变量。 这意味着它的生存期与过程的生存期相同,它的范围为整个过程。
调用语法
使用单独的调用语句显式调用 Sub
过程。 不能通过在表达式中使用它的名称来调用它。 必须为所有非可选参数提供值,并且必须将参数列表用括号括起来。 如果未提供参数,可选择省略括号。 可以选择使用 Call
关键字,但不建议使用。
调用 Sub
过程的语法如下:
[Call] SubName[(argumentlist)]
可以从定义 Sub
方法的类的外部调用该方法。 首先,必须使用 New
关键字创建类的实例,或调用返回类的实例的方法。 有关详细信息,请参阅 New 运算符。 然后,可以使用以下语法对实例对象调用 Sub
方法:
object.MethodName[(argumentList)]
声明和调用的演示
以下 Sub
过程告知计算机操作员应用程序将要执行的任务,并且还会显示时间戳。 应用程序只需从不同位置调用 tellOperator
即可,而不是在每个任务开始时都重复此代码。 每个调用都在参数 task
中传递一个字符串,该字符串标识要启动的任务。
Sub tellOperator(ByVal task As String)
Dim stamp As Date
stamp = TimeOfDay()
MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub
下面的示例显示了对 tellOperator
的一个典型调用。
tellOperator("file update")