#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

Voir aussi