Двумя основными решениями являются директивы препроцессора и атрибут Conditional .
Соответствующая директива препроцессора работает следующим образом:
#if DEBUG
// Lines here are only compiled if DEBUG is defined, like in a Debug build.
#else
// Lines here are only compiled if DEBUG is not defined, like in a Release build.
#endif
Атрибут Условный применяется к методу:
[Conditional("DEBUG")]
public void DoDebugOnly()
{
// Whatever
}
Тогда все вызовы для DoDebugOnly () компилируются, только когда определено DEBUG.
Оба метода работают и для любых других идентификаторов препроцессора. TRACE - это еще один пример, который интегрирован в Visual Studio, но любой определенный вами идентификатор препроцессора работает:
#define FOO
#if FOO
// Lines here are only compiled if FOO is defined.
#endif