2010-05-27 19 views
8

estoy mirando algo de código C#, y he encontrado con la siguiente afirmación:compilador de C# Directivas

#if DEBUG 
    // Do something here 
#else 
    // Do something else 
#endif 

que supone que DEBUG sería un definido en algún lugar de la siguiente manera:

#define DEBUG 

Pero No puedo encontrar esa definición, aunque el código parece comportarse como si estuviera configurado. ¿Es DEBUG un caso especial y, en caso afirmativo, cómo se establece/desactiva?

Respuesta

5

En el proyecto, vaya a Properties -> Build. En general, tiene una opción allí para definir DEBUG y TRACE.

+1

Entonces, ¿cuál es la ventaja/razonamiento detrás de estas casillas de verificación en lugar de tener #define DEBUG establecido? –

+0

@ pm_2 - Centralidad. Eso es todo. –

4

Se establece con la directiva #define o en el compiler settings. Es común que DEBUG se defina en las versiones de depuración, por lo que podría compilar condicionalmente algún código como en su ejemplo.

Puede leer más al respecto en MSDN.

+7

** ¡Por favor ** no publique enlaces de Visual Studio 2003/.NET 1.1! Los lectores siguen los enlaces, y luego quieren seguir los enlaces de los enlaces, y terminan atascados en 2003. –

+3

Sí, lo arreglé. La culpa tonta de Google y yo tenemos habilitada la edición de bajo ancho de banda, así que no la veo de inmediato. Todas las excusas, por supuesto :) – Skurmedel

4

Si nos fijamos en las propiedades del proyecto se encuentra un DEBUG opción de depuración entonces usted puede hacer en C#:

[Conditional("Debug")] 
public void DebugThis() 
{ 
} 
1

También puede definir la depuración y TRACE constantes de compilación condicional bajo Construir las propiedades del proyecto lengüeta. Para esta instancia, Definir DEPURACIÓN constante casilla de verificación probablemente esté marcada para su proyecto.

Más detalles @MSDN.

Cuestiones relacionadas