Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Warunkowo kompiluje wybrane bloki kodu Visual Basic.
Składnia
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
generatora
expression
Wymagane dla instrukcji #If
i #ElseIf
, opcjonalne gdzie indziej. Dowolne wyrażenie składające się wyłącznie z co najmniej jednej stałej, literałów i operatorów kompilatora warunkowego, które oblicza wartość lub True
False
.
statements
Wymagane dla #If
bloku instrukcji, opcjonalnego gdzie indziej. Wiersze programu Visual Basic lub dyrektywy kompilatora, które są kompilowane, jeśli skojarzone wyrażenie zwróci wartość True
.
#End If
Kończy blok instrukcji #If
.
Uwagi
Na powierzchni zachowanie #If...Then...#Else
dyrektyw wygląda tak samo jak w przypadku instrukcji If...Then...Else
. Jednak dyrektywy oceniają, #If...Then...#Else
co jest kompilowane przez kompilator, podczas gdy If...Then...Else
instrukcje oceniają warunki w czasie wykonywania.
Kompilacja warunkowa jest zwykle używana do kompilowania tego samego programu dla różnych platform. Służy również do zapobiegania wyświetlaniu kodu debugowania w pliku wykonywalnym. Kod wykluczony podczas kompilacji warunkowej jest całkowicie pomijany z końcowego pliku wykonywalnego, więc nie ma wpływu na rozmiar ani wydajność.
Niezależnie od wyniku oceny wszystkie wyrażenia są oceniane przy użyciu metody Option Compare Binary
. Instrukcja Option Compare
nie ma wpływu na wyrażenia w instrukcjach #If
i .#ElseIf
Uwaga
Nie istnieje żadna jednowierszowa #If
forma dyrektyw , #Else
, #ElseIf
i #End If
. Żaden inny kod nie może występować w tym samym wierszu co dowolne dyrektywy.
Instrukcje w bloku kompilacji warunkowej muszą być kompletnymi instrukcjami logicznymi. Na przykład nie można warunkowo skompilować tylko atrybutów funkcji, ale można warunkowo zadeklarować funkcję wraz z jej atrybutami:
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
Przykład
W tym przykładzie użyto #If...Then...#Else
konstrukcji , aby określić, czy skompilować określone instrukcje.
#Const CustomerNumber = 36
#If CustomerNumber = 35 Then
' Insert code to be compiled for customer # 35.
#ElseIf CustomerNumber = 36 Then
' Insert code to be compiled for customer # 36.
#Else
' Insert code to be compiled for all other customers.
#End If