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.
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