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

Vedi anche