#if Not Debug in c #?


127

У меня есть строка в коде vb:

#if Not Debug

который я должен преобразовать, а я не вижу его в C #?

Есть ли что-то эквивалентное или есть какое-то обходное решение?

Ответы:


239

Вам нужно будет использовать:

#if !DEBUG
    // Your code here
#endif

Или, если ваш символ действительно Debug

#if !Debug
    // Your code here
#endif

Из документации вы можете эффективно рассматривать DEBUGкак логическое значение. Таким образом, вы можете проводить сложные тесты, например:

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

15

Чтобы вы знали, что здесь происходит, #ifэто выражение предварительной обработки и DEBUGсимвол условной компиляции. Вот статья MSDN для более подробного объяснения.

По умолчанию в конфигурации отладки Visual Studio проверяет параметр « Определить константу отладки » в свойствах сборки проекта. Это касается как C #, так и VB.NET. Если вы хотите сходить с ума, вы можете определить новые конфигурации сборки и определить свои собственные символы условной компиляции. Типичный пример, когда вы это видите:

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

10

На всякий случай, если это поможет кому-то другому, вот мой ответ.

Это не сработает:

#if !DEBUG
     // My stuff here
#endif

Но это сработало:

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

3
Возможно, это было как раз в тот день, когда это было опубликовано, но, по крайней мере, для VS 2015! DEBUG работает, как ожидалось
— Оле Альберс

5

Я думаю что-то вроде сработает

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

5
Просто отмечать круглые скобки не требуется для этих условных #ifоператоров. Это можно написать#if DEBUG
— atconway

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

5
Это плохой ответ, поскольку он использует логику времени выполнения для обработки того, что может быть сделано во время компиляции.
— antiduh

Время от времени для создания шаблонов T4 и т. П. Такие вещи могут понадобиться время от времени.
— StingyJack
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.