Istruzione GoTo

Crea un ramo senza condizioni per una riga specificata di una routine.

Sintassi

GoTo line  

In parte

line
Obbligatorio. Qualsiasi etichetta di riga.

Osservazioni:

L'istruzione GoTo può creare un ramo solo per 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 le istruzioni.

Nota

Le istruzioni GoTo possono rendere difficile la lettura e la gestione del codice. Quando possibile, usare una struttura di controllo. Per altre informazioni, vedere Flusso di controllo.

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

Creazione di un ramo e costruzioni Try

All'interno di una costruzione Try...Catch...Finally, per la creazione di un ramo con istruzione GoTo si applicano le regole seguenti.

Blocco o area geografica Creazione di un ramo dall'esterno Creazione di un ramo dall'interno
Blocco Try Solo da un blocco Catch della stessa costruzione 1 Solo all'esterno dell'intera costruzione
Blocco Catch Mai Solo all'esterno dell'intera costruzione, o al blocco Try della stessa costruzione 1
Blocco Finally Mai Mai

1 Se una costruzione Try...Catch...Finally è annidata all'interno di un altra, un blocco Catch può creare un ramo nel blocco Try al suo livello di annidamento, ma non in qualsiasi blocco Try. Una costruzione annidata Try...Catch...Finally deve essere contenuta completamente in un blocco Try o Catch della costruzione all'interno della quale è annidata.

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

Graphic diagram of branching in Try constructions

Esempio

Nell'esempio seguente viene utilizzata l'istruzione GoTo per creare un ramo per 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

Vedi anche