Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozgałęzienia bezwarunkowo do określonej linii w procedurze.
Składnia
GoTo line
Część
line
To jest wymagane. Dowolna etykieta wiersza.
Uwagi
Instrukcja GoTo może rozgałęzić tylko do wierszy w procedurze, w której się pojawia. Wiersz musi mieć etykietę wiersza, która GoTo może się odwoływać. Aby uzyskać więcej informacji, zobacz Instrukcje: Instrukcje etykiet.
Uwaga / Notatka
GoTo instrukcje mogą utrudniać odczytywanie i konserwację kodu. Jeśli to możliwe, należy zamiast tego użyć struktury sterującej. Aby uzyskać więcej informacji, zobacz Przepływ sterowania.
Nie można użyć instrukcji , aby rozgałęzić GoTo się spoza ...NextFor, ...Next, For EachSyncLock..., ...End SyncLockCatchTry...Finally, With...End With, lub Using...End Using konstrukcja do etykiety wewnątrz.
Rozgałęzianie i testowanie konstrukcji
W ...TryCatch...Finally konstrukcja, następujące zasady mają zastosowanie do rozgałęziania za pomocą instrukcji GoTo .
| Blokuj lub region | Rozgałęzianie z zewnątrz | Rozgałęzianie od wewnątrz |
|---|---|---|
blok Try |
Tylko z Catch bloku tej samej konstrukcji 1 |
Tylko na zewnątrz całej konstrukcji |
blok Catch |
Nigdy nie jest dozwolone | Tylko na zewnątrz całej konstrukcji lub Try do bloku tej samej konstrukcji 1 |
blok Finally |
Nigdy nie jest dozwolone | Nigdy nie jest dozwolone |
1 Jeśli jeden Try...Catch...Finally konstrukcja jest zagnieżdżona w innym, blok może rozgałęzić Catch się w Try bloku na własnym poziomie zagnieżdżania, ale nie w żadnym innym Try bloku. Zagnieżdżone Try...Catch...Finally konstrukcja musi być całkowicie zawarta w Try bloku lub Catch konstrukcji, w której jest zagnieżdżona.
Poniższa ilustracja przedstawia jedną Try konstrukcję zagnieżdżona w innym. Różne gałęzie między blokami dwóch konstrukcji są wskazywane jako prawidłowe lub nieprawidłowe.
Przykład
W poniższym przykładzie użyto instrukcji GoTo , aby rozgałęzić etykiety wierszy w procedurze.
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