Fundamentos de Programación Orientada a Objetos en C# .NET
Ejemplos con aplicaciones visuales y de consola
COMPILACIÓN CONDICIONAL
2
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
1
Fundamentos de Programación Orientada a Objetos en C# .NET
Ejemplos con aplicaciones visuales y de consola
Preguntas detonadoras
¿Qué es y para qué sirve la compilación condicional?
¿Cuándo se recomienda utilizarla?
¿Qué son las directivas de preprocesamiento?
¿Cuáles son las directivas de prepropcesamiento?
¿Cómo se implementa la compilación condicional en
un proyecto de C#?
Compilación condicional
Se utiliza para incluir o excluir un
segmento de código de un programa
fuente.
Utiliza las directivas de preprocesamiento
3
4
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
2
Fundamentos de Programación Orientada a Objetos en C# .NET
Ejemplos con aplicaciones visuales y de consola
Directivas de preprocesamiento
Ofrecen la posibilidad de omitir secciones
de código de una aplicación.
Se utilizan para notificar errores y/o
advertencias o simplemente ignorar algún
segmento de código fuente durante la
etapa del análisis léxico de la compilación
5
Directivas de preprocesamiento
Directiva
Uso
#define, #undef
#if, #else, #endif
anular
la
Permiten definir o
definición de un identificador o
una macro.
Permiten definir o anular secciones
de código fuente de una aplicación
según la definición (o no) del
identificador.
6
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
3
Fundamentos de Programación Orientada a Objetos en C# .NET
Ejemplos con aplicaciones visuales y de consola
Recomendaciones de uso de
compilación condicional
Cuando se está probando una aplicación que
requiere demasiados datos de entrada.
Cuando se desea ejecutar algún método para
validar cierta operación (en tiempo de diseño
de la aplicación).
Cuando una
datos
adicionales a los de entrada durante su
diseño, pero no durante su ejecución.
aplicación requiere
La directiva #define
Se utiliza para definir un identificador.
Una
vez
el
definido
el
compilador lo utiliza en cada aparición en el
código fuente
identificador,
Puede contener una simple definición o una
macro
7
8
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
4
Fundamentos de Programación Orientada a Objetos en C# .NET
Ejemplos con aplicaciones visuales y de consola
Ejemplos de la directiva #define
#define X
#define Datos
#define Longitud 35
#define Sumar(x,y) (x+y)
9
Las directivas #if, #else, #endif
Se utilizan para controlar las secciones del
código fuente que se desea compilar.
Funciona de manera semejante al if-else
La directiva #if define el inicio de una sección
de código y #endif indica el cierre.
Deben coincidir las directivas #if y #endif
10
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
5
Fundamentos de Programación Orientada a Objetos en C# .NET
Ejemplos con aplicaciones visuales y de consola
¿Dónde se coloca la directiva
#define?
#define Bandera
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Circunferencia
{
class Program
{
static void Main(string[] args)
{
Ejemplo
static void Main(string[] args)
{
double dblRadio;
#if Bandera
dblRadio = 6.18;
#else
Console.WriteLine(“Radio de la circunferencia?");
dblRadio = double.Parse(Console.ReadLine());
#endif
double dblArea = Math.PI * Math.Pow(dblRadio, 2);
Console.WriteLine("Área = "+dblArea);
Console.ReadKey();
}
11
12
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
6
Fundamentos de Programación Orientada a Objetos en C# .NET
Ejemplos con aplicaciones visuales y de consola
Ejemplo (cont.)
Si la Bandera está definida (#define Bandera)
entonces se ejecuta la inicialización directa del valor de la
variable dblRadio y se omite la captura desde el teclado
#if Bandera
dblRadio = 6.18; // Cuando Bandera está activa
#else
Console.WriteLine(“Radio de la circunferencia?");
dblRadio = double.Parse(Console.ReadLine());
#endif
13
Ejemplo (cont.)
Si se elimina la definición de Bandera (#define
Bandera) entonces se omite la inicialización directa del
valor de la variable dblRadio y se captura desde el
teclado
#if Bandera
dblRadio = 6.18; // Cuando Bandera está activa
#else
Console.WriteLine(“Radio de la circunferencia?");
dblRadio = double.Parse(Console.ReadLine());
#endif
14
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
7
Fundamentos de Programación Orientada a Objetos en C# .NET
Ejemplos con aplicaciones visuales y de consola
Otros títulos del autor
http://www.itnuevolaredo.edu.mx/Takeyas/Libro
[email protected]
Bruno López Takeyas
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
8
Comentarios de: 06b.- Compilacion Condicional - Programación Orientada a Objetos en C# .NET (0)
No hay comentarios