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 可以指定有关重载、替代、共享和影子处理的访问级别和信息。 有关详细信息,请参阅 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")

另请参阅