C# LanguageDirectivas del pre procesador


Sintaxis

  • #define [symbol] // Define un símbolo compilador.
  • #undef [symbol] // Undefines un símbolo compilador.
  • #warning [mensaje de advertencia] // Genera una advertencia del compilador. Útil con #if.
  • #error [mensaje de error] // Genera un error del compilador. Útil con #if.
  • #line [número de línea] (nombre de archivo) // Anula el número de línea del compilador (y opcionalmente el nombre del archivo de origen). Utilizado con plantillas de texto T4 .
  • #pragma warning [disable | restore] [números de advertencia] // Desactiva / restaura las advertencias del compilador.
  • #pragma checksum " [filename] " " [guid] " " [checksum] " // Valida el contenido de un archivo fuente.
  • #region [nombre de la región] // Define una región de código plegable.
  • #endregion // Finaliza un bloque de región de código.
  • #if [condición] // Ejecuta el código siguiente si la condición es verdadera.
  • #else // Se usa después de un #if.
  • #elif [condición] // Se usa después de un #if.
  • #endif // Finaliza un bloque condicional iniciado con #if.

Observaciones

Las directivas de preprocesador se utilizan normalmente para hacer que los programas de origen sean fáciles de cambiar y compilar en diferentes entornos de ejecución. Las directivas en el archivo de origen le indican al preprocesador que realice acciones específicas. Por ejemplo, el preprocesador puede reemplazar tokens en el texto, insertar el contenido de otros archivos en el archivo de origen o suprimir la compilación de parte del archivo eliminando secciones de texto. Las líneas del preprocesador se reconocen y se ejecutan antes de la expansión de macros. Por lo tanto, si una macro se expande en algo que parece un comando de preprocesador, ese comando no es reconocido por el preprocesador.

Las instrucciones del preprocesador utilizan el mismo conjunto de caracteres que las declaraciones del archivo de origen, con la excepción de que las secuencias de escape no son compatibles. El conjunto de caracteres utilizado en las instrucciones del preprocesador es el mismo que el conjunto de caracteres de ejecución. El preprocesador también reconoce valores de caracteres negativos.

Expresiones condicionales

Las expresiones condicionales ( #if , #elif , etc.) admiten un subconjunto limitado de operadores booleanos. Son:

  • == y != . Solo se pueden usar para comprobar si el símbolo es verdadero (definido) o falso (no definido)
  • && , || , !
  • ()

Por ejemplo:

#if !DEBUG && (SOME_SYMBOL || SOME_OTHER_SYMBOL) && RELEASE == true
Console.WriteLine("OK!");
#endif

compilaría el código que imprime "OK!" a la consola si DEBUG no está definido, ya sea SOME_SYMBOL o SOME_OTHER_SYMBOL , y RELEASE está definido.

Nota: estas sustituciones se realizan en tiempo de compilación y, por lo tanto, no están disponibles para inspección en tiempo de ejecución. El código eliminado mediante el uso de #if no es parte de la salida del compilador.

Vea también: Directivas de preprocesador de C # en MSDN.

Directivas del pre procesador Ejemplos relacionados