#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

Viz také