« 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
Ligne 1 : Ligne 1 :
=Utilisation dans le code=
[[Category:CSharp]]
{|
= Utilisation dans le code =
!style="padding: 0 10px 0 0"| [[File:csharp.png|40px]]
<kode lang="csharp">
|
<syntaxhighlight 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 24 :
     }
     }
}
}
</syntaxhighlight>
</kode>
|}


=Activation d'un symbole=
= Activation d'un symbole =
*<syntaxhighlight lang="csharp">#define</syntaxhighlight>
* <syntaxhighlight lang='' inline>#define</syntaxhighlight>
*Propriétés du projet &rarr; Générer &rarr; Symboles de compilation conditionnelle
* Propriétés du projet Générer Symboles de compilation conditionnelle


=Attribut de méthode Conditional=
= 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.<br/>
{{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">
!style="padding: 0 10px 0 0"| [[File:csharp.png|40px]]
|
<syntaxhighlight 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 46 :
#endif
#endif
}
}
</syntaxhighlight>
</kode>
|}
 
[[Category:CSharp]]

Version du 9 avril 2020 à 16:50

Utilisation dans le code

Csharp.svg
// 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.

Csharp.svg
// 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
}