47 votes

Opérateur Or dans Attribut conditionnel en C#

En C#, nous pouvons différencier l'exécution du code en fonction du type de construction. Par défaut, les types Debug et Release sont définis.
Nous pouvons le faire en utilisant la fonction #if directive :

#if DEBUG
    public void Foo()
    { ... }
#endif

Mais nous pouvons aussi utiliser Conditional attribut :

[Conditional("DEBUG")]
public void Foo()
{ ... }

La seconde solution est même considérée comme plus facile à maintenir (voir : Effective C# par Bill Wagner).

Ma question est la suivante : comment puis-je utiliser le Conditional avec de nombreuses configurations de construction ? Est-il possible d'utiliser d'une manière ou d'une autre l'attribut or opérateur ? Je pose la question parce que je veux qu'une méthode Foo soit exécutée à la fois, par exemple, dans les configurations de construction DEBUG et BAR. Que se passe-t-il alors ?

53voto

Andy Korneyev Points 17125

Vous pouvez utiliser plusieurs attributs conditionnels séparés par des virgules, par exemple

[Conditional("DEBUG"), Conditional("BAR")]

et vous obtiendrez exactement le comportement que vous souhaitez - ils seront logiquement liés par un OU.

Véase MSDN pour référence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X