Compilation conditionnelle en Visual Basic

En compilation conditionnelle, certains blocs de code d’un programme sont compilés de manière sélective, tandis que d’autres sont ignorés.

Par exemple, vous pouvez écrire des instructions de débogage qui comparent la vitesse de différentes approches pour la même tâche de programmation ou localiser une application pour plusieurs langages. Les instructions de compilation conditionnelle sont conçues pour s’exécuter au moment de la compilation, et non au moment de l’exécution.

Pour indiquer des blocs de code à compiler de manière conditionnelle, vous devez utiliser la directive #If...Then...#Else. Par exemple, pour créer des versions en français et en allemand de la même application à partir du même code source, vous devez incorporer des segments de code spécifiques de la plateforme dans des instructions #If...Then à l’aide des constantes prédéfinies FrenchVersion et GermanVersion. L’exemple suivant illustre la manière de procéder :

#If FrenchVersion Then
   ' <code specific to the French language version>.
#ElseIf GermanVersion Then
   ' <code specific to the German language version>.
#Else
        ' <code specific to other versions>.
#End If

Si vous définissez la valeur de la constante de compilation conditionnelle FrenchVersion sur True au moment de la compilation, le code conditionnel de la version française est compilé. Si vous définissez la valeur de la constante GermanVersion sur True, le compilateur utilise la version allemande. Si aucune valeur n’est définie sur True, le code du dernier bloc Else s’exécute.

Notes

La saisie semi-automatique ne fonctionnera pas lors de la modification du code et de l’utilisation de directives de compilation conditionnelle si le code ne fait pas partie de la branche actuelle.

Déclaration de constantes de compilation conditionnelle

Vous pouvez définir des constantes de compilation conditionnelle de l’une des trois manières suivantes :

  • Dans le Concepteur de projet

  • Sur la ligne de commande lors de l’utilisation du compilateur de ligne de commande

  • Dans votre code

Les constantes de compilation conditionnelle ont une étendue spéciale et ne sont pas accessibles à partir du code standard. L’étendue d’une constante de compilation conditionnelle dépend de la façon dont elle est définie. Le tableau suivant répertorie l’étendue des constantes déclarées à l’aide de chacune des trois méthodes mentionnées ci-dessus.

Définition de la constante Étendue de la constante
Concepteur de projets Publique pour tous les fichiers du projet
Ligne de commande Publique pour tous les fichiers passés au compilateur de ligne de commande
Instruction #Const dans le code Privée pour le fichier dans lequel elle est déclarée
Pour définir des constantes dans le Concepteur de projet
- Avant de créer votre fichier exécutable, définissez des constantes dans le Concepteur de projet en suivant les étapes fournies dans Gestion des propriétés des projets et des solutions.
Pour définir des constantes au niveau de la ligne de commande
- Utilisez le commutateur -d pour entrer des constantes de compilation conditionnelle, comme dans l’exemple suivant :
vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0
Aucun espace n’est nécessaire entre le commutateur -d et la première constante. Pour plus d’informations, consultez -define (Visual Basic).
Les déclarations de ligne de commande remplacent les déclarations entrées dans le Concepteur de projet, mais elles ne les effacent pas. Les arguments définis dans le Concepteur de projet restent en vigueur pour les compilations suivantes.
Lors de l’écriture de constantes dans le code lui-même, il n’existe aucune règle stricte quant à leur placement, car leur étendue correspond à l’ensemble du module dans lequel elles sont déclarées.
Pour définir des constantes dans votre code
- Placez les constantes dans le bloc de déclaration du module dans lequel elles sont utilisées. Cela permet de garder votre code organisé et plus facile à lire.
Intitulé Description
Structure de programme et conventions de codage Fournit des suggestions pour faciliter la lecture et la maintenance du code.

Informations de référence

#Const (directive)

#If...Then...#Else, directives

-define (Visual Basic)