Looking for c# Answers? Try Ask4KnowledgeBase
Looking for c# Keywords? Try Ask4Keywords

C# LanguageDirectives du préprocesseur


Syntaxe

  • #define [symbole] // Définit un symbole de compilation.
  • #undef [symbole] // Annule un symbole du compilateur.
  • #warning [message d'avertissement] // Génère un avertissement de compilation. Utile avec #if.
  • # erreur [message d'erreur] // Génère une erreur de compilation. Utile avec #if.
  • #line [numéro de ligne] (nom du fichier) // Remplace le numéro de ligne du compilateur (et éventuellement le nom du fichier source). Utilisé avec les modèles de texte T4 .
  • #pragma warning [disable | restore] [numéros d'avertissement] // Désactive / restaure les avertissements du compilateur.
  • #pragma checksum " [nomfichier] " " [guid] " " [somme de contrôle] " // Valide le contenu du fichier source.
  • #region [nom de la région] // Définit une région de code réductible.
  • #endregion // Termine un bloc de région de code.
  • #if [condition] // Exécute le code ci-dessous si la condition est vraie.
  • #else // Utilisé après un #if.
  • #elif [condition] // Utilisé après un #if.
  • #endif // Termine un bloc conditionnel démarré avec #if.

Remarques

Les directives de préprocesseur sont généralement utilisées pour faciliter la modification des programmes sources et leur compilation dans différents environnements d'exécution. Les directives du fichier source indiquent au préprocesseur d'effectuer des actions spécifiques. Par exemple, le préprocesseur peut remplacer des jetons dans le texte, insérer le contenu d'autres fichiers dans le fichier source ou supprimer la compilation d'une partie du fichier en supprimant des sections de texte. Les lignes de préprocesseur sont reconnues et exécutées avant l'expansion de la macro. Par conséquent, si une macro se développe en quelque chose qui ressemble à une commande de préprocesseur, cette commande n'est pas reconnue par le préprocesseur.

Les instructions de préprocesseur utilisent le même jeu de caractères que les instructions de fichier source, sauf que les séquences d'échappement ne sont pas prises en charge. Le jeu de caractères utilisé dans les instructions de préprocesseur est identique au jeu de caractères d'exécution. Le préprocesseur reconnaît également les valeurs de caractères négatives.

Expressions conditionnelles

Les expressions conditionnelles ( #if , #elif , etc.) prennent en charge un sous-ensemble limité d'opérateurs booléens. Elles sont:

  • == et != . Celles-ci ne peuvent être utilisées que pour tester si le symbole est vrai (défini) ou faux (non défini)
  • && , || , !
  • ()

Par exemple:

#if !DEBUG && (SOME_SYMBOL || SOME_OTHER_SYMBOL) && RELEASE == true
Console.WriteLine("OK!");
#endif

compilerait le code qui imprime "OK!" à la console si DEBUG n'est pas défini, SOME_SYMBOL ou SOME_OTHER_SYMBOL est défini et RELEASE est défini.

Remarque: Ces substitutions sont effectuées au moment de la compilation et ne sont donc pas disponibles pour inspection au moment de l'exécution. Le code éliminé par l'utilisation de #if ne fait pas partie de la sortie du compilateur.

Voir aussi: Directives de préprocesseur C # sur MSDN.

Directives du préprocesseur Exemples Liés