#if Не отлаживать в c #?

87

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

#if Not Debug

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

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

Теги:

5 ответов

156
Лучший ответ

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

#if !DEBUG
    // Your code here
#endif

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

#if !DEBUG
    // Your code here
#endif

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

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

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

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

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

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

 #if (DEBUG)
//Something
#else
//Something
#endif
  • 4
    Просто отмечая скобки не требуются для этого условного оператора #if . Это может быть написано # если #if DEBUG
4

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

Это не сработает правильно:

#if !DEBUG
     // My stuff here
#endif

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

#if (DEBUG == false)
     // My stuff here
#endif
  • 3
    Возможно, это было правильно в тот день, когда это было опубликовано, но, по крайней мере, для VS 2015! DEBUG работает как положено
0
     bool isDebugMode = false;
#if DEBUG
     isDebugMode = true;
#endif
    if (isDebugMode == false)
    {
       enter code here
    }
    else
    {
       enter code here
    }
  • 3
    Это плохой ответ, поскольку он использует логику времени выполнения для обработки того, что можно сделать во время компиляции.
  • 0
    Время разработки T4 и тому подобное будут время от времени нуждаться в подобных вещах.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню