English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Las instrucciones del preprocesador guían al compilador para que realice la preprocesación de la información antes de comenzar la compilación real.
Todas las instrucciones del preprocesador comienzan con #. Y en una línea, solo pueden aparecer caracteres de espacio en blanco antes de la instrucción del preprocesador. Las instrucciones del preprocesador no son sentencias, por lo que no terminan con un punto y coma (;).
El compilador de C# no tiene un preprocesador separado, pero, cuando se procesan las instrucciones, actúa como si hubiera un preprocesador separado. En C#, las instrucciones del preprocesador se utilizan para actuar en la compilación condicional. Al igual que en C y C++ La diferencia es que no se utilizan para crear macros. Una instrucción del preprocesador debe ser la única instrucción en la línea.
La siguiente tabla enumera las instrucciones del preprocesador disponibles en C#:
Instrucciones del preprocesador | Descripción |
---|---|
#define | Se utiliza para definir una serie de caracteres que se convierten en un símbolo. |
#undef | Se utiliza para desdefinir un símbolo. |
#if | Se utiliza para probar si un símbolo es verdadero. |
#else | Se utiliza para crear instrucciones condicionales compuestas, junto con #if. |
#elif | Se utiliza para crear instrucciones condicionales compuestas. |
#endif | Especifica el final de una instrucción condicional. |
#line | Permite que pueda modificar el número de líneas del compilador y (opcionalmente) el nombre del archivo de salida de errores y advertencias. |
#error | Permite generar un error desde una ubicación específica del código. |
#warning | Permite generar un aviso de nivel superior desde una ubicación específica del código. |
#region | Le permite especificar un bloque de código que puede expandirse o colapsarse al usar las características de esquema del Editor de Código Visual Studio. |
#endregion | Identifica el final del bloque #region. |
#define instrucciones del preprocesador crean constantes de símbolo.
#define permite definir un símbolo, de modo que al usar el símbolo como expresión para la instrucción #if, la expresión devolverá true. Su sintaxis es la siguiente:
#define símbolo
El siguiente programa ilustra esto:
#define PI using System; namespace PreprocessorDAppl { class Program { static void Main(string[] args) { #if (PI) Console.WriteLine("PI está definido"); #else Console.WriteLine("PI no está definido"); #endif Console.ReadKey(); } } }
Cuando el código anterior se compila y ejecuta, producirá los siguientes resultados:
PI está definido
Puede usar la instrucción #if para crear una instrucción condicional. Las instrucciones condicionales se utilizan para probar si un símbolo es verdadero. Si es verdadero, el compilador ejecutará el código entre #if y la siguiente instrucción.
Sintaxis de instrucción condicional:
#if símbolo [operador símbolo]...
Donde,símbolo es el nombre del símbolo que se va a probar. También puede usar true y false, o colocar el operador de negación delante del símbolo.
Operadores comunes incluyen:
== (igual)
!= (no es igual)
&& (y)
|| (o)
También puede usar paréntesis para agrupar símbolos y operadores. Las instrucciones condicionales se utilizan para compilar código en versiones de depuración o configuraciones de compilación especificadas. Una #if Las instrucciones condicionales, deben ser expresamente indicadas con un #endif Finalización de instrucción.
El siguiente programa muestra el uso de instrucciones condicionales:
#define DEBUG #define VC_V10 using System; public class TestClass { public static void Main() { #if (DEBUG && !VC_V10) Console.WriteLine("DEBUG está definido"); #elif (!DEBUG && VC_V10) Console.WriteLine("VC_V"}10 está definido); #elif (DEBUG && VC_V10) Console.WriteLine("DEBUG y VC_V10 están definidos); #else Console.WriteLine("DEBUG y VC_V10 no están definidos); #endif Console.ReadKey(); } }
Cuando el código anterior se compila y ejecuta, producirá los siguientes resultados:
DEBUG y VC_V10 están definidos