-define (Options du compilateur C#)-define (C# Compiler Options)

L’option -define définit name comme symbole dans tous les fichiers de code source de votre programme.The -define option defines name as a symbol in all source code files your program.

SyntaxeSyntax

-define:name[;name2]  

ArgumentsArguments

name, name2name, name2
Nom de chaque symbole que vous souhaitez définir.The name of one or more symbols that you want to define.

RemarquesRemarks

L’option -define revient à utiliser une directive de préprocesseur #define, sauf que l’option de compilateur est appliquée à tous les fichiers du projet.The -define option has the same effect as using a #define preprocessor directive except that the compiler option is in effect for all files in the project. Un symbole reste défini dans un fichier source jusqu’à ce qu’une directive #undef dans le fichier source en supprime la définition.A symbol remains defined in a source file until an #undef directive in the source file removes the definition. Quand vous utilisez l’option -define, une directive #undef dans un fichier n’a aucun effet sur les autres fichiers de code source du projet.When you use the -define option, an #undef directive in one file has no effect on other source code files in the project.

Vous pouvez utiliser les symboles créés par cette option avec #if, #else, #elif et #endif pour effectuer une compilation conditionnelle des fichiers sources.You can use symbols created by this option with #if, #else, #elif, and #endif to compile source files conditionally.

-d est la forme abrégée de -define.-d is the short form of -define.

Pour définir plusieurs symboles avec -define, séparez chaque nom de symbole par un point-virgule ou une virgule.You can define multiple symbols with -define by using a semicolon or comma to separate symbol names. Par exemple :For example:

-define:DEBUG;TUESDAY  

Le compilateur C# lui-même ne définit aucun symbole ni aucune macro que vous pouvez utiliser dans votre code source ; toutes les définitions de symbole doivent être définies par l’utilisateur.The C# compiler itself defines no symbols or macros that you can use in your source code; all symbol definitions must be user-defined.

Notes

La directive C# #define ne permet de donner une valeur à un symbole, comme dans les langages tels que C++.The C# #define does not allow a symbol to be given a value, as in languages such as C++. Par exemple, l’option #define ne peut pas être utilisée pour créer une macro ni définir une constante.For example, #define cannot be used to create a macro or to define a constant. Si vous devez définir une constante, utilisez une variable enum.If you need to define a constant, use an enum variable. Si vous souhaitez créer une macro de style C++, envisagez l’alternative que constituent les génériques.If you want to create a C++ style macro, consider alternatives such as generics. Comme les macros sont notoirement sujettes aux erreurs, C# n’autorise pas leur utilisation, mais fournit des solutions plus sûres.Since macros are notoriously error-prone, C# disallows their use but provides safer alternatives.

Pour définir cette option du compilateur dans l'environnement de développement Visual StudioTo set this compiler option in the Visual Studio development environment

  1. Ouvrez la page Propriétés du projet.Open the project's Properties page.

  2. Dans l’onglet Générer, tapez le symbole à définir dans la zone Symboles de compilation conditionnelle.On the Build tab, type the symbol that is to be defined in the Conditional compilation symbols box. Par exemple, si vous utilisez l’exemple de code qui suit, tapez simplement xx dans la zone de texte.For example, if you are using the code example that follows, just type xx into the text box.

Pour plus d’informations sur la définition de cette option du compilateur par programmation, consultez DefineConstants.For information on how to set this compiler option programmatically, see DefineConstants.

ExemplesExample

// preprocessor_define.cs  
// compile with: -define:xx  
// or uncomment the next line  
// #define xx  
using System;  
public class Test   
{  
    public static void Main()   
    {  
        #if (xx)   
            Console.WriteLine("xx defined");  
        #else  
            Console.WriteLine("xx not defined");  
        #endif  
    }  
}  

Voir aussiSee also