Cómo usar la constante de compilador DEBUG

Todo proyecto de Visual Studio se crea con dos configuraciones predeterminadas: Debug y Release.

Es común que si queremos que cierto código sea solo válido para la configuración Debug, alguna vez hayamos utilizado directivas de compilador de la siguiente forma:

Normalmente, el código entre #if DEBUG y #endif solo va a salir si estamos en la configuración Debug. Y digo “normalmente” porque no es algo que dependa directamente de la configuración Debug, sino del símbolo DEBUG dado de alta en las propiedades del proyecto:

debug constant

 

Aquí podemos ver que DEBUG es una constante que se define en la sección Build de las propiedades del proyecto (al igual que TRACE). Normalmente la constante DEBUG está definida en la configuración Debug pero no está definida en Release.

Como se dan cuenta, no se podría hacer algo como:

Simplemente, la constante RELEASE no existe. Aunque podrían dar de alta el símbolo RELEASE en el campo Conditional compilation symbols y así sí obtener el resultado esperado.

Otra opción a considerar sería usar #if !DEBUG.

Por último, tengan en cuenta que estas constantes y símbolos cambian con la configuración. Entonces, si tienen una configuración Release, los símbolos que den de alta allí no estarán en la configuración Debug y viceversa.