Dela via


GoTo-instruktion

Grenar villkorslöst till en angiven rad i en procedur.

Syntax

GoTo line  

Delvis

line
Obligatoriska. Alla radetiketter.

Kommentarer

-instruktionen GoTo kan endast förgrenas till rader i den procedur som den visas i. Raden måste ha en radetikett som GoTo kan referera till. Mer information finns i Anvisningar: Etikettinstruktioner.

Kommentar

GoTo -instruktioner kan göra det svårt att läsa och underhålla koden. Använd i stället en kontrollstruktur när det är möjligt. Mer information finns i Kontrollflöde.

Du kan inte använda en GoTo -instruktion för att förgrena utanför en For...Next, For Each...Next, SyncLock...End SyncLock, Try...Catch...Finally, With...End With, eller Using...End Using konstruktion till en etikett inuti.

Förgrening och prova konstruktioner

Inom en Try...Catch...Finally gäller följande regler för förgrening med -instruktionen GoTo .

Blockera eller region Förgrena in utifrån Förgrena sig inifrån
Try blockera Endast från ett Catch block av samma konstruktion 1 Endast till utanför hela konstruktionen
Catch blockera Tillåts aldrig Endast till utanför hela konstruktionen, eller till blocket Try av samma konstruktion 1
Finally blockera Tillåts aldrig Tillåts aldrig

1 Om en Try...Catch...Finally konstruktion är kapslad i en annan, ett Catch block kan förgrenas till Try blocket på sin egen kapslingsnivå, men inte i något annat Try block. En kapslad Try...Catch...Finally konstruktionen skall vara helt innesluten i en Try eller Catch flera delar av konstruktionen inom vilken den är kapslad.

Följande bild visar en Try konstruktion kapslad i en annan. Olika grenar bland blocken i de två konstruktionerna anges som giltiga eller ogiltiga.

Graphic diagram of branching in Try constructions

Exempel

I följande exempel används -instruktionen GoTo för att förgrena till radetiketter i en procedur.

    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

Se även