Директивы компилятора C #
-
05-10-2019 - |
Вопрос
Я смотрю на какой-нибудь код C # и столкнулся с следующим утверждением:
#if DEBUG
// Do something here
#else
// Do something else
#endif
Я предположил, что отладка будет определена где-то следующим образом:
#define DEBUG
Но я не могу найти такое определение, хотя код, кажется, ведет себя так, как будто он был установлен. Отладка особого случая, и если да, то как он устанавливается / unset?
Решение
На проекте, перейдите к Properties -> Build
. Отказ Под общем, у вас есть вариант там для определения обоих DEBUG
а также TRACE
.
Другие советы
Это установлено с #define
Директива или в Настройки компилятора. Отказ Обычно для отладки будет определена в отладке релизов, поэтому вы можете условно скомпилировать какой-то код, как в вашем примере.
Вы можете прочитать больше об этом на MSDN.
Если вы посмотрите в свойствах проекта, вы найдете отладочную опцию отладки, вы можете сделать в C #:
[Conditional("Debug")]
public void DebugThis()
{
}
Вы также можете определить константы условных компиляций отладки и трассировки под вкладкой «Создание свойств проекта». Для этого экземпляра, Определите константу отладки Флажок, вероятно, проверяется на ваш проект.
Подробнее @ MSDN.