Freigeben über


#define (C#-Referenz)

Mit #define wird ein Symbol definiert. Wenn Sie das Symbol als Ausdruck verwenden, der an die #if--Direktive übergeben wird, wird der Ausdruck als true ausgewertet, wie in folgendem Beispiel dargestellt:

#define DEBUG

Hinweise

Hinweis

Die #define-Direktive kann nicht zur Deklaration konstanter Werte wie in C und C++ verwendet werden.Definieren Sie Konstanten in C# als statische Member einer Klasse oder einer Struktur.Wenn Sie über mehrere solcher Konstanten verfügen, erwägen Sie, eine separate "Constants"-Klasse zu erstellen.

Symbole können verwendet werden, um Bedingungen für die Kompilierung anzugeben. Ein Symbol kann entweder mit #if oder mit #elif überprüft werden. Für bedingte Kompilierung kann auch das conditional-Attribut verwendet werden.

Ein Symbol kann zwar definiert werden, aber es kann ihm kein Wert zugewiesen werden. Die #define-Direktive muss in einer Datei vor allen Anweisungen, bei denen es sich nicht um Präprozessordirektiven handelt, verwendet werden.

Ein Symbol kann auch mit der /define-Compileroption definiert werden. Die Definition eines Symbols kann mit #undef aufgehoben werden.

Zwischen einem Symbol, das mit /define oder mit #define definiert wird, und einer Variablen mit dem gleichen Namen kommt es zu keinem Konflikt. Das bedeutet, dass ein Variablenname nicht an eine Präprozessordirektive übergeben werden sollte und ein Symbol nur von einer Präprozessordirektive ausgewertet werden kann.

Bei dem Gültigkeitsbereich eines mit #define erstellten Symbols handelt es sich um die Datei, in der es definiert wurde.

Wie im folgenden Beispiel dargestellt, müssen Sie die #define-Direktive am Anfang der Datei eingeben.

#define DEBUG
//#define TRACE
#undef TRACE

using System;

public class TestDefine
{
    static void Main()
    {
#if (DEBUG)
        Console.WriteLine("Debugging is enabled.");
#endif

#if (TRACE)
     Console.WriteLine("Tracing is enabled.");
#endif
    }
}
// Output:
// Debugging is enabled.

Ein Beispiel dafür, wie eine Symboldefinition aufgehoben wird, finden Sie unter #undef (C#-Referenz).

Siehe auch

Aufgaben

Gewusst wie: Bedingtes Kompilieren mit Ablaufverfolgung und Debuggen

Referenz

C#-Präprozessordirektiven

const (C#-Referenz)

#undef (C#-Referenz)

#if (C#-Referenz)

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz