Директивы компилятора C # - PullRequest
8 голосов
/ 27 мая 2010

Я смотрю на некоторый код C # и наткнулся на следующее утверждение:

#if DEBUG
    // Do something here
#else
    // Do something else
#endif

Я предполагал, что DEBUG будет определен где-то следующим образом:

#define DEBUG

Но я не могу найти такое определение, хотя кажется, что код ведет себя так, как будто он установлен.Является ли DEBUG особым случаем, и если да, то как он установлен / не установлен?

Ответы [ 4 ]

5 голосов
/ 27 мая 2010

В проекте перейдите на Properties -> Build. В общем, у вас есть опция для определения DEBUG и TRACE.

4 голосов
/ 27 мая 2010

Если вы посмотрите в свойствах проекта, вы найдете опцию отладки DEBUG Тогда вы можете сделать в C #:

[Conditional("Debug")]
public void DebugThis()
{
}
4 голосов
/ 27 мая 2010

Устанавливается с помощью директивы #define или в настройках компилятора . Обычно DEBUG определяется в отладочных версиях, поэтому вы можете условно скомпилировать некоторый код, как в вашем примере.

Подробнее об этом можно прочитать на MSDN .

1 голос
/ 27 мая 2010

Вы также можете определить константы условной компиляции DEBUG и TRACE на вкладке «Свойства» проекта. В этом случае для вашего проекта, возможно, установлен флажок Определить постоянную отладки .

Подробнее @ MSDN .

...