GoTo 语句

无条件地分支到过程中的指定行。

语法

GoTo line  

部件

line
必填。 任何行标签。

注解

GoTo 语句只能分支到其出现的过程中的行。 该行必须具有可以引用的 GoTo 行标签。 有关详细信息,请参阅如何:为语句添加标签

注释

GoTo 语句会使代码难以读取和维护。 尽可能改用控件结构。 有关详细信息,请参阅 Control Flow

不能使用GoTo语句从 For...NextFor Each...NextSyncLock...End SyncLock、... TryCatch...FinallyWith...End WithUsing...End Using 内部标签的构造。

分支和尝试构造

Try在 ...Catch 中...Finally构造,以下规则适用于语句的GoTo分支。

阻止或区域 从外部分支 从内部分支
Try 仅来自同一Catch构造 1 的块 仅到整个建筑外部
Catch 从不允许 仅到整个施工外部,或到 Try 同一构造块 1
Finally 从不允许 从不允许

1 如果一个 Try...Catch...Finally 构造嵌套在另一个块内,块 Catch 可以分支到其自己的嵌套级别,但不能进入 Try 任何其他 Try 块。 嵌套...TryCatch...Finally构造必须完全Try包含在嵌套的构造的构造Catch块中。

下图显示了嵌套在另一个 Try 构造中。 这两个构造块中的各种分支表示为有效或无效。

Try 构造中的分支图示

示例:

以下示例使用 GoTo 语句对过程中的标签进行分支。

    Sub GoToStatementDemo()
        Dim number As Integer = 1
        Dim sampleString As String
        ' Evaluate number and branch to appropriate label.
        If number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
        sampleString = "Number equals 1"
        GoTo LastLine
Line2:
        ' The following statement never gets executed because number = 1.
        sampleString = "Number equals 2"
LastLine:
        ' Write "Number equals 1" in the Debug window.
        Debug.WriteLine(sampleString)
    End Sub

另请参阅