У меня есть код, который должен работать немного по-другому в режимах отладки и выпуска.У него есть константа с именем PrettyPrint
, которая установлена в true
в некоторых режимах и false
в других, и я иногда изменяю их.
#if DEBUG
public const bool PrettyPrint = true;
#else
public const bool PrettyPrint = false;
#endif
// ...snip...
string start, end, comma, innerIndentation;
if (Printer.PrettyPrint) {
innerIndentation = indentation + " ";
start = "[\n";
end = indentation + "]";
comma = ",\n" + innerIndentation;
} else {
innerIndentation = "";
start = "[";
end = "]";
comma = ",";
}
// Then do some prints using the initialized strings as constants
Это прекрасно работает, и компилятор умныйдостаточно, чтобы оптимизировать if
прочь.Однако я получаю раздражающее предупреждение:
warning CS0162: Unreachable code detected
Есть ли способ избежать этого предупреждения, не выполнив одно из следующих действий:
- , используя
#if
непосредственно в коде -так как это делает эту часть кода довольно некрасивой, и я бы хотел как можно больше избегать #if
s. - подавления CS0162 для других случаев - поскольку я считаю, что это предупреждение неоценимо при поиске неработающего кода.
Как использовать оператор #if DEBUG
без IDE, считая, что весь следующий код недоступен?