#If...Then...#Else – direktivy
podmíněně zkompiluje vybrané bloky kódu Visual Basic.
Syntax
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
Součásti
expression
Požadováno pro #If #ElseIf příkazy a, volitelně jinde. Libovolný výraz, který obsahuje výhradně jednu nebo více podmíněné konstanty kompilátoru, literály a operátory, které jsou vyhodnoceny jako True nebo False .
statements
Vyžadováno pro #If blok příkazu, volitelně jinde. Visual Basic řádky programu nebo direktivy kompilátoru, které jsou kompilovány, pokud je přidružený výraz vyhodnocen jako True .
#End If
Ukončí #If blok příkazu.
Poznámky
Na povrchu #If...Then...#Else se chování direktiv zobrazí stejně jako u If...Then...Else příkazů. Nicméně #If...Then...#Else direktivy vyhodnotí, co je zkompilováno kompilátorem, zatímco If...Then...Else příkazy vyhodnotí podmínky v době běhu.
Podmíněná kompilace se obvykle používá ke kompilaci stejného programu pro různé platformy. Slouží také k tomu, aby se zabránilo zobrazování kódu ladění ve spustitelném souboru. Kód vyloučený během podmíněné kompilace je zcela vynechán z finálního spustitelného souboru, takže nemá žádný vliv na velikost nebo výkon.
Bez ohledu na výsledek všech vyhodnocení jsou všechny výrazy vyhodnocovány pomocí Option Compare Binary . Option ComparePříkaz nemá vliv na výrazy v #If #ElseIf příkazech a.
Poznámka
Neexistuje žádný jednořádkový tvar #If #Else direktiv,, #ElseIf a #End If . Žádný jiný kód se nemůže zobrazit na stejném řádku jako kterákoli ze direktiv.
Příkazy v bloku podmíněné kompilace musí být dokončeny pomocí logických příkazů. Například nemůžete podmíněně kompilovat pouze atributy funkce, ale můžete podmíněně deklarovat funkci spolu s jejími atributy:
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
Příklad
V tomto příkladu je použita #If...Then...#Else konstrukce k určení, zda mají být zkompilovány 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