C# - Directivas de preprocesador
Las directivas del preprocesador le dan instrucciones al compilador para que procese previamente la información antes de que comience la compilación real.
Todas las directivas de preprocesador comienzan con # y solo pueden aparecer caracteres de espacio en blanco antes de una directiva de preprocesador en una línea. Las directivas de preprocesador no son declaraciones, por lo que no terminan con un punto y coma (;).
El compilador de C# no tiene un preprocesador separado; sin embargo, las directivas se procesan como si hubiera una. En C#, las directivas del preprocesador se utilizan para ayudar en la compilación condicional. A diferencia de las directivas de C y C++, no se utilizan para crear macros. Una directiva de preprocesador debe ser la única instrucción en una línea.
Directivas de preprocesador en C#
La siguiente tabla enumera las directivas de preprocesador disponibles en C# −
Sr.No. | Directiva y descripción del preprocesador |
---|---|
1 | #definir Define una secuencia de caracteres, llamada símbolo. |
2 | #undef Le permite anular la definición de un símbolo. |
3 | #si Permite probar un símbolo o símbolos para ver si se evalúan como verdaderos. |
4 | #más Permite crear una directiva condicional compuesta, junto con #if. |
5 | #elif Permite crear una directiva condicional compuesta. |
6 | #endif Especifica el final de una directiva condicional. |
7 | #línea Le permite modificar el número de línea del compilador y (opcionalmente) la salida del nombre del archivo para errores y advertencias. |
8 | #error Permite generar un error desde una ubicación específica en su código. |
9 | #advertencia Permite generar una advertencia de nivel uno desde una ubicación específica en su código. |
10 | #región Le permite especificar un bloque de código que puede expandir o contraer cuando usa la función de esquema del Editor de código de Visual Studio. |
11 | #endregion Marca el final de un bloque de #región. |
El preprocesador #define
La directiva de preprocesador #define crea constantes simbólicas.
#define le permite definir un símbolo de tal manera que, al usar el símbolo como la expresión que se pasa a la directiva #if, la expresión se evalúa como verdadera. Su sintaxis es la siguiente −
#define symbol
El siguiente programa ilustra esto −
Demostración en vivo#define PI using System; namespace PreprocessorDAppl { class Program { static void Main(string[] args) { #if (PI) Console.WriteLine("PI is defined"); #else Console.WriteLine("PI is not defined"); #endif Console.ReadKey(); } } }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
PI is defined
Directrices condicionales
Puede usar la directiva #if para crear una directiva condicional. Las directivas condicionales son útiles para probar un símbolo o símbolos para verificar si se evalúan como verdaderos. Si se evalúan como verdaderos, el compilador evalúa todo el código entre #if y la siguiente directiva.
La sintaxis de la directiva condicional es −
#if symbol [operator symbol]...
Donde, símbolo es el nombre del símbolo que desea probar. También puede usar verdadero y falso o anteponer el símbolo con el operador de negación.
El símbolo del operador es el operador utilizado para evaluar el símbolo. Los operadores pueden ser cualquiera de los siguientes −
- ==(igualdad)
- !=(desigualdad)
- &&(y)
- || (o)
También puede agrupar símbolos y operadores con paréntesis. Las directivas condicionales se usan para compilar código para una compilación de depuración o cuando se compila para una configuración específica. Una directiva condicional que comienza con #if la directiva debe terminar explícitamente con un #endif directiva.
El siguiente programa demuestra el uso de directivas condicionales −
Demostración en vivo#define DEBUG #define VC_V10 using System; public class TestClass { public static void Main() { #if (DEBUG && !VC_V10) Console.WriteLine("DEBUG is defined"); #elif (!DEBUG && VC_V10) Console.WriteLine("VC_V10 is defined"); #elif (DEBUG && VC_V10) Console.WriteLine("DEBUG and VC_V10 are defined"); #else Console.WriteLine("DEBUG and VC_V10 are not defined"); #endif Console.ReadKey(); } }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
DEBUG and VC_V10 are defined
Lenguaje C
- C# Hello World:su primer programa en C#
- Identificadores y palabras clave de C#
- Variables de C# y tipos de datos (primitivos)
- Operadores de C#
- Operadores C# Bitwise y Bit Shift
- Entrada y salida básica de C#
- Expresiones, declaraciones y bloques de C# (con ejemplos)
- Comentarios de C#
- Declaración de cambio de C#
- C# ternario (? :) Operador
- Directivas de preprocesador de C#