#If...Then...#Else – direktivy
Podmíněně zkompiluje vybrané bloky kódu jazyka Visual Basic.
Syntaxe
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
Součástky
expression
Povinné pro #If
příkazy a #ElseIf
příkazy, volitelné jinde. Libovolný výraz, který se skládá výhradně z jedné nebo více konstant podmíněného kompilátoru, literálů a operátorů, které se vyhodnotí jako True
nebo False
.
statements
Povinné pro #If
blok příkazu, volitelné jinde. Direktivy programu jazyka Visual Basic nebo direktivy kompilátoru, které jsou kompilovány, pokud se přidružený výraz vyhodnotí jako True
.
#End If
Ukončí #If
blok příkazu.
Poznámky
Na povrchu se chování #If...Then...#Else
direktiv zobrazuje stejně jako chování If...Then...Else
příkazů. Direktivy však vyhodnocují, #If...Then...#Else
co kompilátor kompiluje, zatímco If...Then...Else
příkazy vyhodnocují podmínky za běhu.
Podmíněná kompilace se obvykle používá ke kompilaci stejného programu pro různé platformy. Slouží také k zabránění zobrazení kódu ladění ve spustitelném souboru. Kód vyloučený během podmíněné kompilace je zcela vynechán z konečného spustitelného souboru, takže nemá žádný vliv na velikost nebo výkon.
Bez ohledu na výsledek jakéhokoli vyhodnocení se všechny výrazy vyhodnocují pomocí Option Compare Binary
. Příkaz Option Compare
nemá vliv na výrazy v #If
a #ElseIf
příkazech.
Poznámka:
Neexistuje jednořádková forma #If
, #Else
#ElseIf
, a #End If
direktivy. Na stejném řádku jako žádná direktiva se nemůže objevit žádný jiný kód.
Příkazy v rámci bloku podmíněné kompilace musí být úplné logické příkazy. Nemůžete například podmíněně kompilovat pouze atributy funkce, ale můžete podmíněně deklarovat funkci spolu s jeho atributy:
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
Příklad
Tento příklad používá #If...Then...#Else
konstruktor k určení, zda se mají kompilovat určité příkazy.
#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