У меня есть переменная (т.е. bool releaseMode = false;
). Я хочу, чтобы значение переменной было установлено в зависимости от того, находимся ли мы в режиме выпуска (releaseMode = true;
), иначе в режиме отладки (releaseMode = false;
)
Как запустить код в зависимости от режима выпуска или отладки?
Ответы (1)
Из вашего вопроса вы можете использовать это:
/// <summary>
/// Indicate if the executable has been generated in debug mode.
/// </summary>
static public bool IsDebugExecutable
{
get
{
bool isDebug = false;
CheckDebugExecutable(ref isDebug);
return isDebug;
}
}
[Conditional("DEBUG")]
static private void CheckDebugExecutable(ref bool isDebug)
=> isDebug = true;
Конечно, вы можете поменять имя на:
IsReleaseExecutable
return !isDebug;
Этот подход подразумевает, что весь код компилируется. Таким образом, любой код может быть выполнен в зависимости от этого флага, а также любого другого параметра поведения, касающегося пользователя или программы, такого как, например, активация или деактивация механизма отладки и трассировки. Например:
if ( IsDebugExecutable || UserWantDebug ) DoThat();
Другой вариант директивы препроцессора:
Директивы if / then C # для отладки и выпуска
#if DEBUG против условного (DEBUG)
person
Olivier Rogier
schedule
04.06.2021
как насчет этого кода: #if DEBUG releaseMode = false; #else releaseMode = true; #endif
- person shahab jani; 04.06.2021
Как пожелаете. Выберите метод, который лучше всего подходит для вас, который наиболее подходит для вас и для контекста. Выберите то, что вы считаете наиболее ясным, чистым, эффективным и удобным в обслуживании. Лично я, прочитав и протестировав несколько вещей, выбрал предложенный код, который показался мне наиболее аккуратным.
- person Olivier Rogier; 04.06.2021