2011-08-30 6 views
86

que tienen la línea de código VB:#if No depurar en C#?

#if Not Debug 

que debo convertir, y yo no lo ven en C#?

¿Hay algo equivalente a eso, o hay alguna solución?

Respuesta

156

Usted tendría que utilizar:

#if !DEBUG 
    // Your code here 
#endif 

O, si su símbolo es en realidad Debug

#if !Debug 
    // Your code here 
#endif 

Desde el documentation, se puede tratar eficazmente DEBUG como booleano. Así es posible realizar pruebas complejas como:

#if !DEBUG || (DEBUG && SOMETHING) 
5

creo que algo así como funcionará

#if (DEBUG) 
//Something 
#else 
//Something 
#endif 
+4

Simplemente observando el paréntesis no son necesarios para este condicional '# if' declaraciones. Se puede escribir '# if DEBUG' – atconway

12

Para que lo está familiarizado con lo que está pasando aquí, #if es una expresión de pre-procesamiento y DEBUG es un símbolo de la compilación condicional. Here's an MSDN article para una explicación más detallada.

Por defecto, cuando en configuración de depuración, Visual Studio se compruebe la Definir DEBUG opción constante bajo construcción Propiedades del proyecto. Esto vale tanto para C# como para VB.NET. Si quieres volverte loco, puedes definir nuevas configuraciones de compilación y definir tus propios símbolos de compilación condicional. El ejemplo típico cuando vea esto, sin embargo es:

#if DEBUG 
    //Write to the console 
#else 
    //write to a file 
#endif 
4

Sólo en caso de que ayuda a alguien más, aquí está mi respuesta.

Esto no funcionaría derecha:

#if !DEBUG 
    // My stuff here 
#endif 

Pero esto funcionó:

#if (DEBUG == false) 
    // My stuff here 
#endif 
+3

. Pudo haber estado en el día en que se publicó, pero al menos para VS 2015. DEBUG funciona como se esperaba –

0
 bool isDebugMode = false; 
#if DEBUG 
    isDebugMode = true; 
#endif 
    if (isDebugMode == false) 
    { 
     enter code here 
    } 
    else 
    { 
     enter code here 
    } 
+2

Esta es una mala respuesta, ya que usa lógica en tiempo de ejecución para manejar lo que podría hacerse en tiempo de compilación. – antiduh

+0

Tiempo de diseño Las plantillas T4 y similares necesitarán este tipo de cosas de vez en cuando. – StingyJack