Direttive #If...Then...#Else

Compila in modo condizionale i blocchi selezionati di Visual Basic codice.

Sintassi

#If expression Then
   statements
[ #ElseIf expression Then
   [ statements ]
...
#ElseIf expression Then
   [ statements ] ]
[ #Else
   [ statements ] ]
#End If

Parti

expression
Obbligatorio per #If le #ElseIf istruzioni e , facoltativo altrove. Qualsiasi espressione, costituita esclusivamente da una o più costanti del compilatore condizionale, valori letterali e operatori, che restituisce o TrueFalse.

statements
Obbligatorio per il #If blocco di istruzioni , facoltativo altrove. Visual Basic righe di programma o direttive del compilatore compilate se l'espressione associata restituisce True.

#End If
Termina il blocco #If di istruzioni.

Commenti

In superficie, il comportamento delle #If...Then...#Else direttive è identico a quello delle If...Then...Else istruzioni . Tuttavia, le #If...Then...#Else direttive valutano ciò che viene compilato dal compilatore, mentre le If...Then...Else istruzioni valutano le condizioni in fase di esecuzione.

La compilazione condizionale viene in genere usata per compilare lo stesso programma per piattaforme diverse. Viene inoltre usato per impedire la visualizzazione del codice di debug in un file eseguibile. Il codice escluso durante la compilazione condizionale viene omesso completamente 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 #If istruzioni #ElseIf e .

Nota

Non esiste alcun formato a riga singola #Ifdelle #Elsedirettive , #ElseIf, #End If e . Nessun altro codice può essere visualizzato nella stessa riga 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 #If...Then...#Else il costrutto 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