#If...Then...#Else, directives
Compile de manière conditionnelle les blocs sélectionnés de code Visual Basic.
Syntaxe
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
Éléments
expression
Obligatoire pour les instructions #If
et #ElseIf
, facultatif pour le reste. Toute expression, composée exclusivement d’une ou de plusieurs constantes de compilateur conditionnelles, de littéraux et d’opérateurs, qui prend la valeur True
ou False
.
statements
Obligatoire pour le bloc d’instructions #If
, facultatif pour le reste. Lignes de programme Visual Basic ou directives de compilateur qui sont compilées si l’expression associée prend la valeur True
.
#End If
Termine le bloc d’instructions #If
.
Notes
Sur la surface, le comportement des directives #If...Then...#Else
est identique à celui des instructions If...Then...Else
. Toutefois, les directives #If...Then...#Else
évaluent le contenu compilé par le compilateur, tandis que les instructions If...Then...Else
évaluent les conditions au moment de l’exécution.
La compilation conditionnelle est généralement utilisée pour compiler le même programme pour différentes plateformes. Elle est également utilisée pour empêcher l’affichage du code de débogage dans un fichier exécutable. Le code exclu lors de la compilation conditionnelle est complètement omis dans le fichier exécutable final ; il n’a donc aucun effet sur la taille ou les performances.
Quel que soit le résultat d’une évaluation, toutes les expressions sont évaluées à l’aide de Option Compare Binary
. L’instruction Option Compare
n’affecte pas les expressions dans les instructions #If
et #ElseIf
.
Notes
Il n’existe aucune forme à ligne unique des directives #If
, #Else
, #ElseIf
et #End If
. Aucun autre code ne peut apparaître sur la même ligne que l’une des directives.
Les instructions d’un bloc de compilation conditionnelle doivent être des instructions logiques complètes. Par exemple, vous ne pouvez pas compiler de manière conditionnelle uniquement les attributs d’une fonction, mais vous pouvez déclarer de manière conditionnelle la fonction avec ses attributs :
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
Exemple
Cet exemple utilise la construction #If...Then...#Else
pour déterminer s’il faut compiler certaines instructions.
#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