Direttive #If...Then...#Else
Compila in modo condizionale blocchi selezionati di codice Visual Basic.
Sintassi
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
Parti
expression
Obbligatorio per istruzioni #If
e #ElseIf
, facoltativo altrove. Qualsiasi espressione, costituita esclusivamente da una o più costanti del compilatore condizionale, valori letterali e operatori, che restituisce True
o False
.
statements
Obbligatorio per il blocco di istruzioni #If
, facoltativo altrove. Linee di programma Visual Basic o direttive del compilatore compilate se l'espressione associata restituisce True
.
#End If
Termina il blocco di istruzioni #If
.
Osservazioni:
In superficie, il comportamento delle direttive #If...Then...#Else
viene visualizzato come quello delle istruzioni If...Then...Else
. Tuttavia, le direttive #If...Then...#Else
valutano ciò che viene compilato dal compilatore, mentre le istruzioni If...Then...Else
valutano le condizioni in fase di esecuzione.
La compilazione condizionale viene in genere usata per compilare lo stesso programma per piattaforme diverse. Viene usata anche per impedire la visualizzazione del codice di debug in un file eseguibile. Il codice escluso durante la compilazione condizionale viene completamente omesso dal file eseguibile finale, quindi non ha alcun effetto sulle dimensioni o sulle prestazioni.
Indipendentemente dal risultato di qualsiasi valutazione, tutte le espressioni vengono valutate usando Option Compare Binary
. L'istruzione Option Compare
non influisce sulle espressioni nelle istruzioni #If
e #ElseIf
.
Nota
Non esiste alcuna forma a riga singola delle direttive #If
, #Else
, #ElseIf
e #End If
. Nessun altro codice può essere visualizzato nella stessa riga di una delle direttive.
Le istruzioni all'interno di un blocco di compilazione condizionale devono essere istruzioni logiche complete. Ad esempio, non è possibile compilare in modo condizionale solo gli attributi di una funzione, ma è possibile dichiarare in modo condizionale la funzione insieme ai relativi attributi:
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
Esempio
In questo esempio viene utilizzato il costrutto #If...Then...#Else
per determinare se compilare determinate istruzioni.
#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