Condividi tramite


Istruzione GoTo

Rami in modo incondizionato a una riga specificata in una routine.

Sintassi

GoTo line  

Parte

line
Obbligatorio. Qualsiasi etichetta di riga.

Osservazioni:

L'istruzione GoTo può diramare solo le righe della routine in cui viene visualizzata. La riga deve avere un'etichetta di riga a cui GoTo può fare riferimento. Per altre informazioni, vedere Procedura: Etichettare istruzioni.

Annotazioni

GoTo le istruzioni possono rendere difficile leggere e gestire il codice. Quando possibile, usare invece una struttura di controllo. Per altre informazioni, vedere Flusso di controllo.

Non è possibile usare un'istruzione per creare rami GoTo dall'esterno di un For...Next, For Each...Next, SyncLock...End SyncLock, Try...Catch...Finally, With...End With, o Using...End Using costruzione di un'etichetta all'interno.

Diramazione e tentativo di costruzione

All'interno di un Try...Catch...Finally costruzione, le regole seguenti si applicano alla diramazione con l'istruzione GoTo .

Blocca o area geografica Diramazione in dall'esterno Diramazione dall'interno
blocco Try Solo da un Catch blocco della stessa costruzione 1 Solo all'esterno dell'intera costruzione
blocco Catch Mai consentito Solo all'esterno dell'intera costruzione, o al Try blocco della stessa costruzione 1
blocco Finally Mai consentito Mai consentito

1 Se uno ...TryCatch...Finally la costruzione è annidata all'interno di un altro, un Catch blocco può diramarsi nel Try blocco a livello di annidamento, ma non in un altro Try blocco. Un oggetto annidato Try...Catch...Finally la costruzione deve essere contenuta completamente in un Try blocco o Catch della costruzione all'interno della quale è annidata.

La figura seguente mostra una Try costruzione annidata all'interno di un'altra. Vari rami tra i blocchi delle due costruzioni sono indicati come validi o non validi.

Diagramma grafico della diramazione in Provare le costruzioni

Esempio

Nell'esempio seguente viene utilizzata l'istruzione GoTo per diramare le etichette di riga in una routine.

    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

Vedere anche