Freigeben über


/define (Präprozessordefinition) (C#-Compileroptionen)

Aktualisiert: Juli 2008

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

/define:name[;name2]

Argumente

  • name, name2
    Der Name eines oder mehrerer Symbole, die definiert werden sollen.

Hinweise

Die Option /define hat dieselbe Auswirkung wie die Verwendung eines #define-Präprozessordirektiven, außer dass die Compileroption für alle Dateien im Projekt gültig ist. Ein Symbol bleibt in einer Quelldatei definiert, bis eine #undef-Direktive in der Quelldatei die Definition entfernt. Wenn Sie die Option /define verwenden, hat eine #undef-Direktive 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. Beispiel:

/define:DEBUG;TUESDAY

Der C# -Compiler selbst definiert keine Symbole oder Makros, die Sie im 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 Eigenschaftenseite 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 DefineConstants.

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

Weitere Ressourcen

C#-Compileroptionen

Projekteigenschaften (Visual Studio)

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Juli 2008

Informationen im Abschnitt Hinweise überarbeitet, um anzugeben, dass die Option auf alle Dateien auswirkt, bis eine #undef-Direktive gefunden wurde.

Korrektur inhaltlicher Fehler.