#wenn nicht in c # debuggt?


125

Ich habe die Zeile im VB-Code:

#if Not Debug

was muss ich konvertieren, und ich sehe es nicht in c #?

Gibt es etwas Äquivalentes dazu oder gibt es eine Problemumgehung?

Antworten:


237

Sie müssten verwenden:

#if !DEBUG
    // Your code here
#endif

Oder wenn Ihr Symbol tatsächlich ist Debug

#if !Debug
    // Your code here
#endif

Aus der Dokumentation können Sie effektiv DEBUGals Boolescher Wert behandeln. So können Sie komplexe Tests durchführen wie:

#if !DEBUG || (DEBUG && SOMETHING)

15

Nur damit Sie mit den #ifVorgängen hier vertraut sind, handelt es sich um einen Vorverarbeitungsausdruck und DEBUGein bedingtes Kompilierungssymbol. Hier ist ein MSDN-Artikel für eine ausführlichere Erklärung.

In der Debug- Konfiguration aktiviert Visual Studio standardmäßig die Option DEBUG-Konstante definieren unter den Build-Eigenschaften des Projekts. Dies gilt sowohl für C # als auch für VB.NET. Wenn Sie verrückt werden möchten, können Sie neue Build-Konfigurationen definieren und Ihre eigenen bedingten Kompilierungssymbole definieren. Das typische Beispiel, wenn Sie dies sehen, ist:

#if DEBUG
    //Write to the console
#else
    //write to a file
#endif

9

Nur für den Fall, dass es jemand anderem hilft, hier ist meine Antwort.

Das würde nicht richtig funktionieren:

#if !DEBUG
     // My stuff here
#endif

Aber das hat funktioniert:

#if (DEBUG == false)
     // My stuff here
#endif

3
Könnte an dem Tag richtig gewesen sein, an dem dies veröffentlicht wurde, aber zumindest für VS 2015! DEBUG funktioniert wie erwartet
Ole Albers

5

Ich denke so etwas wird funktionieren

 #if (DEBUG)
//Something
#else
//Something
#endif

5
Nur die Klammern zu beachten, ist für diese bedingten #ifAnweisungen nicht erforderlich . Es kann geschrieben werden#if DEBUG
atconway

0
     bool isDebugMode = false;
#if DEBUG
     isDebugMode = true;
#endif
    if (isDebugMode == false)
    {
       enter code here
    }
    else
    {
       enter code here
    }

5
Dies ist eine schlechte Antwort, da die Laufzeitlogik verwendet wird, um zu handhaben, was zur Kompilierungszeit getan werden könnte.
Antiduh

Entwurfszeit T4-Vorlagen und dergleichen benötigen von Zeit zu Zeit solche Dinge.
StingyJack
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.