English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Les instructions de préprocesseur indiquent au compilateur de prétraiter les informations avant le début réel de la compilation.
Toutes les instructions de préprocesseur commencent par #. Et sur une ligne, seuls les caractères d'espace peuvent apparaître avant l'instruction de préprocesseur. Les instructions de préprocesseur ne sont pas des instructions, donc elles ne se terminent pas par un point-virgule (;).
Le compilateur C# n'a pas de préprocesseur séparé, mais les instructions sont traitées comme s'il y en avait un. Dans C#, les instructions de préprocesseur sont utilisées pour agir dans la compilation conditionnelle. Comme en C et en C++++ Ce qui est différent, c'est qu'elles ne sont pas utilisées pour créer des macros. Une instruction de préprocesseur doit être la seule instruction sur la ligne.
Le tableau suivant liste les instructions de préprocesseur disponibles en C#:
Instructions de préprocesseur | Description |
---|---|
#define | Il est utilisé pour définir une série de caractères qui deviennent des symboles. |
#undef | Il est utilisé pour annuler la définition d'un symbole. |
#if | Il est utilisé pour tester si un symbole est vrai. |
#else | Il est utilisé pour créer des instructions conditionnelles composées, avec #if. |
#elif | Il est utilisé pour créer des instructions conditionnelles composées. |
#endif | Spécifie la fin d'une instruction conditionnelle. |
#line | Il vous permet de modifier le nombre de lignes du compilateur ainsi que (en option) le nom du fichier pour les erreurs et les avertissements. |
#error | Permet de générer une erreur à partir d'une position spécifique du code. |
#warning | Permet de générer un avertissement de niveau 1 à partir d'une position spécifique du code. |
#region | Permet de spécifier un bloc de code déployable ou repliable lorsque vous utilisez les fonctionnalités de l'aperçu de Visual Studio Code Editor. |
#endregion | Identifie la fin d'un bloc #region. |
#define est une instruction préprocesseur créant des constantes de symboles.
#define permet de définir un symbole, de sorte que, en utilisant le symbole comme expression passée à l'instruction #if, l'expression renverra true. Sa syntaxe est la suivante :
#define symbol
Le programme suivant illustre ce point :
#define PI using System; namespace PreprocessorDAppl { class Program { static void Main(string[] args) { #if (PI) Console.WriteLine("PI est défini"); #else Console.WriteLine("PI n'est pas défini"); #endif Console.ReadKey(); } } }
Lorsque le code suivant est compilé et exécuté, il produira les résultats suivants :
PI est défini
Vous pouvez utiliser l'instruction #if pour créer une instruction conditionnelle. Les instructions conditionnelles sont utilisées pour tester si un symbole est vrai. Si c'est le cas, le compilateur exécutera le code entre #if et la prochaine instruction.
Syntaxe des instructions conditionnelles :
#if symbol [opérateur symbol]...
où,symbol est le nom du symbole à tester. Vous pouvez également utiliser true et false, ou placer un opérateur de négation devant le symbole.
Les opérateurs courants incluent :
== (égal à)
!= (différent de)
&& (et)
|| (ou)
Vous pouvez également regrouper des symboles et des opérateurs avec des parenthèses. Les instructions conditionnelles sont utilisées pour compiler le code lors de la compilation en version de débogage ou avec une configuration spécifique. Une instruction #if Les instructions conditionnelles doivent être explicitement marquées par un #endif Fin de l'instruction.
Le programme suivant démontre l'utilisation des instructions conditionnelles :
#define DEBUG #define VC_V10 using System; public class TestClass { public static void Main() { #if (DEBUG && !VC_V10) Console.WriteLine("DEBUG est défini"); #elif (!DEBUG && VC_V10) Console.WriteLine("VC_V"}}10 est défini"); #elif (DEBUG && VC_V10) Console.WriteLine("DEBUG et VC_V10 sont définis"); #else Console.WriteLine("DEBUG et VC_V10 ne sont pas définis"); #endif Console.ReadKey(); } }
Lorsque le code suivant est compilé et exécuté, il produira les résultats suivants :
DEBUG et VC_V10 sont définis