/define (C#-Compileroptionen)

Die Option /define definiert name als Symbol in allen Quellcodedateien Ihres Programms.

Syntax

/define:name[;name2]  

Argumente

name, name2
Der Name eines oder mehrerer Symbole, die Sie definieren möchten.

Hinweise

Die Option /define hat dieselbe Auswirkung wie die Verwendung einer #define-Präprozessoranweisung, außer dass die Compileroption für alle Dateien im Projekt gültig ist. Ein Symbol bleibt in einer Quelldatei definiert, bis eine #undef-Anweisung in der Quelldatei die Definition entfernt. Wenn Sie die Option „/define“ verwenden, hat eine #undef-Anweisung in einer Datei keinerlei Auswirkung auf andere Quellcodedateien im Projekt.

Sie können die durch diese Option erstellten Symbole in Verbindung mit #if, #else, #elif, und #endif verwenden, um Quelldateien bedingt zu kompilieren.

/d ist die Kurzform von /define.

Sie können mehrere Symbole mit /define definieren, indem Sie die Symbolnamen jeweils durch ein Semikolon oder Komma voneinander trennen. Zum Beispiel:

/define:DEBUG;TUESDAY  

Der C#-Compiler selbst definiert keine Symbole oder Makros, die Sie in Ihrem Quellcode verwenden können. Alle Symboldefinitionen müssen benutzerdefiniert sein.

Hinweis

Anders als in Programmiersprachen wie C++ ist es in C# bei Verwendung von #define nicht zulässig, einem Symbol einen Wert zuzuweisen. Beispielsweise kann #define nicht zum Erstellen eines Makros oder zum Definieren einer Konstante verwendet werden. Falls Sie eine Konstante definieren müssen, verwenden Sie eine enum-Variable. Wenn Sie ein C++-übliches Makro erstellen möchten, erwägen Sie Alternativen wie Generika. Da Makros sehr fehleranfällig sind, ist ihre Verwendung in C# nicht zugelassen. Es stehen jedoch sicherere Alternativen zur Verfügung.

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie die Eigenschaften-Seite des Projekts.

  2. Geben Sie auf der Registerkarte Erstellen im Feld Symbole für bedingte Kompilierung das zu definierende Symbol ein. Wenn Sie z.B. das folgende Codebeispiel verwenden, geben Sie im Textfeld einfach xx ein.

Informationen zum programmgesteuerten Festlegen dieser Compileroption finden Sie unter <xref:VSLangProj80.CSharpProjectConfigurationProperties3.DefineConstants%2A>.

Beispiel

// 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  
    }  
}  

Siehe auch

C#-Compileroptionen
Verwalten von Projekt- und Projektmappeneigenschaften