Как Вы помещаете “ЕСЛИ ОТЛАДКА” условие в c# программе?

Как Вы помещаете, "ЕСЛИ ОТЛАДКА" условие в c# программе так, чтобы, во время выполнения, это проигнорирует ряд кода, если Вы будете работать в Режиме отладки и все же, выполните блок кода, если программа не работает в режиме отладки? Ситуация, где это может использоваться, состоит в том, если метка времени взята в начале блока, и другая метка времени взята в конце. Они будут едва отличаться во время выполнения. Все же, если Вы ступите через код в режим отладки, то они будут отличаться много, и состояния ошибки в, "если блок" мог бы быть начат, ведя к несвоевременному (игра слов) выполнение некоторого кода.

5
задан xarzu 16 June 2010 в 19:28
поделиться

7 ответов

Вы просто помещаете свой код в такой блок:

#IF DEBUG

//code goes here

#endif

Это не задача времени выполнения, это директива препроцессора, что означает, что код в этом блоке даже не будет компилироваться и не будет включен.

Если вы хотите во время выполнения проверить, отлаживаете ли вы, вы можете проверить Debugger.IsAttached

15
ответ дан 18 December 2019 в 06:34
поделиться

Используйте инструкцию препроцессора #if:

#if debug
    // run in debug mode
#else
    // run if not in debug mode
#endif
5
ответ дан 18 December 2019 в 06:34
поделиться

Вы также можете использовать атрибут

[Conditional("Debug")]

в методах.

3
ответ дан 18 December 2019 в 06:34
поделиться

Еще пара деталей:

  • Вы можете обернуть весь метод, или только блок кода, или только строку кода.
  • Вам нужно добавить с помощью System.Diagnostics;
1
ответ дан 18 December 2019 в 06:34
поделиться
#if DEBUG
        // something
#elif
        // some other thing
#endif
0
ответ дан 18 December 2019 в 06:34
поделиться
#if (DEBUG)
...
#else
...
#endif

см. здесь: http://bloggingabout.net/blogs/rick/archive/2005/03/10/2396.aspx

0
ответ дан 18 December 2019 в 06:34
поделиться

Поскольку любой другой ответ (кроме одного) не отвечает на ваш вопрос, позвольте мне попробовать:

Если вы хотите получить переключатель времени выполнения, вам понадобится способ получить информацию из вашей среды или командной строки. Кроме того, как только вы получите эту информацию, вам нужно будет применить ее к своей программе.

1) Для этого вам понадобится глобальная переменная.

bool bDebug;

2) получить отладочную информацию

bDebug = strcmp (getEnv ("DebuggingMode"), "1");  // you'll need to mess with this a little - do 'man getenv' and 'man strcmp' for an understanding of what I'm doing
  • или -

использовать функцию getopt () , чтобы узнать, включена ли отладка

3) в любом месте вашего кода, которое вы хотите включена отладка, проверьте, установлен ли bDebug

   if (bDebug) {
   // do something
   }
0
ответ дан 18 December 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: