« Symboles de compilation conditionnelle » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
(Page créée avec « =Utilisation dans le code= {| !style="padding: 0 10px 0 0"| 40px | <syntaxhighlight lang="csharp"> // les #define doivent être les premières instruction... ») |
Aucun résumé des modifications |
||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 1 : | Ligne 1 : | ||
= | [[Category:CSharp]] | ||
= Liens = | |||
* [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/preprocessor-directives/ Preprocessor directives on MSDN] | |||
< | = Utilisation dans le code = | ||
<kode lang="csharp"> | |||
// les #define doivent être les premières instructions du fichier avant les using et namespace | // les #define doivent être les premières instructions du fichier avant les using et namespace | ||
#define MYTEST | #define MYTEST | ||
Ligne 26 : | Ligne 27 : | ||
} | } | ||
} | } | ||
</ | </kode> | ||
=Activation d'un symbole= | = Activation d'un symbole = | ||
*<syntaxhighlight lang= | * <syntaxhighlight lang='' inline>#define</syntaxhighlight> | ||
*Propriétés du projet | * Propriétés du projet → Générer → Symboles de compilation conditionnelle | ||
=Attribut de méthode Conditional= | = Attribut de méthode Conditional = | ||
{{boxx|Conditional}} est un attribut de méthode qui indique au compilateur d'ignorer les appels à celle-ci si un certain identificateur de prétraitement n'est pas définit. Néanmoins le code de la méthode sera toujours compilé en MSIL.<br/> | |||
RELEASE n'existe pas, il faut utiliser !DEBUG. | {{boxx|RELEASE}} n'existe pas, il faut utiliser {{boxx|!DEBUG}}. | ||
<kode lang="csharp"> | |||
< | |||
// Les appels à la méthode Message seront ignoré | // Les appels à la méthode Message seront ignoré | ||
// si la compilation n'a pas été réalisée dans le mode DEBUG. | // si la compilation n'a pas été réalisée dans le mode DEBUG. | ||
Ligne 52 : | Ligne 49 : | ||
#endif | #endif | ||
} | } | ||
</ | </kode> | ||
Dernière version du 9 avril 2020 à 16:52
Liens
Utilisation dans le code
// les #define doivent être les premières instructions du fichier avant les using et namespace #define MYTEST using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { #if (DEBUG && !MYTEST) Console.WriteLine("DEBUG is defined"); #elif (!DEBUG && MYTEST) Console.WriteLine("MYTEST is defined"); #elif (DEBUG && MYTEST) Console.WriteLine("DEBUG and MYTEST are defined"); #else Console.WriteLine("DEBUG and MYTEST are not defined"); #endif } } } |
Activation d'un symbole
#define
- Propriétés du projet → Générer → Symboles de compilation conditionnelle
Attribut de méthode Conditional
Conditional est un attribut de méthode qui indique au compilateur d'ignorer les appels à celle-ci si un certain identificateur de prétraitement n'est pas définit. Néanmoins le code de la méthode sera toujours compilé en MSIL.
RELEASE n'existe pas, il faut utiliser !DEBUG.
// Les appels à la méthode Message seront ignoré // si la compilation n'a pas été réalisée dans le mode DEBUG. [Conditional("DEBUG")] static void Message(string message) { // Le code suivant ne sera pas compilés si la compilation n'a pas été réalisée // dans le mode DEBUG. #if DEBUG Console.WriteLine(message); #endif } |