Sub 过程 (Visual Basic)

Sub 过程是由 SubEnd Sub 语句括起来的一系列 Visual Basic 语句。 该过程 Sub 执行任务,然后将控件返回到调用代码,但它不向调用代码返回值。

每次调用该过程时,都会从Sub语句之后的第一个可执行语句开始,继续执行语句,直到遇到第一个End SubExit SubReturn语句为止。

可以在模块、类和结构中定义过程 Sub 。 默认情况下,它是 Public,这意味着你可以从应用程序中的任意位置调用它,该位置可以访问在其中定义它的模块、类或结构。 术语方法描述一种SubFunction过程,该过程可以从定义它的模块、类或结构外部进行访问。 有关详细信息,请参阅 过程

Sub 过程可以采用由调用代码传递给它的参数,例如常量、变量或表达式。

声明语法

声明 Sub 过程的语法如下:

[modifiers] Sub SubName[(parameterList)]
    ' Statements of the Sub procedure.
End Sub

modifiers 可以指定有关重载、替代、共享和影子处理的访问级别和信息。 有关详细信息,请参阅 子声明

参数声明

声明每个过程参数的方式与声明变量的方式类似,并指定参数名称和数据类型。 还可以指定传递机制,以及参数是可选的还是参数数组。

参数列表中每个参数的语法如下所示:

[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType

如果是可选参数,还必须提供默认值作为其声明的一部分。 用于指定默认值的语法如下所示:

Optional [ByVal | ByRef]  parameterName As DataType = defaultValue

参数作为局部变量

当控件传递给过程时,每个参数都被视为局部变量。 这意味着其生存期与过程的生存期相同,其范围是整个过程。

调用语法

使用单独的调用语句显式调用 Sub 过程。 不能通过在表达式中使用其名称来调用它。 必须为所有非可选参数提供值,并且必须将参数列表用括号括起来。 如果未提供参数,可选择省略括号。 关键字的使用 Call 是可选的,但不建议使用。

调用 Sub 过程的语法如下:

[Call] SubName[(argumentlist)]

可以从定义该方法的类外部调用 Sub 方法。 首先,必须使用 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")

另请参阅