Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ramifica incondicionalmente para uma linha especificada em um procedimento.
Sintaxe
GoTo line
Parte
line
Obrigatório Qualquer rótulo de linha.
Observações
A GoTo instrução pode ramificar-se apenas para linhas no procedimento no qual ela aparece. A linha deve ter um rótulo de linha que GoTo possa se referir. Para obter mais informações, consulte Como rotular instruções.
Observação
GoTo as instruções podem dificultar a leitura e a manutenção do código. Sempre que possível, use uma estrutura de controle. Para obter mais informações, consulte Control Flow.
Você não pode usar uma GoTo instrução para ramificar de fora de ...ForNext, For Each...Next, SyncLock..., ...End SyncLockCatchTry...Finally, With...End With, ouUsing...End Using construção em um rótulo dentro.
Ramificar e experimentar construções
Dentro de um Try...Catch...Finally construção, as regras a seguir se aplicam à ramificação com a instrução GoTo .
| Bloquear ou região | Ramificando-se de fora | Ramificando-se por dentro |
|---|---|---|
Bloco Try |
Somente de um Catch bloco da mesma construção 1 |
Somente para fora de toda a construção |
Bloco Catch |
Nunca permitido | Apenas para fora de toda a construção, ou para o Try bloco da mesma construção 1 |
Bloco Finally |
Nunca permitido | Nunca permitido |
1 Se um Try...Catch...Finally a construção é aninhada dentro de outro, um Catch bloco pode ramificar-se no Try bloco em seu próprio nível de aninhamento, mas não em qualquer outro Try bloco. Um aninhado Try...Catch...Finally a construção deve estar completamente contida em um Try ou Catch bloco da construção dentro da qual está aninhada.
A ilustração a seguir mostra uma Try construção aninhada dentro de outra. Vários branches entre os blocos das duas construções são indicados como válidos ou inválidos.
Exemplo
O exemplo a seguir usa a GoTo instrução para ramificar os rótulos de linha em um procedimento.
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