sábado, 23 de julio de 2016

Enumeraciones en C# - Tópicos Avanzados - Parte 1/4 | Unificación de Tipos de Datos

Índice

1. Introducción
2. Palabras Clave
3. Sistema de Unificación de Tipos de Datos
4. Enumeraciones
4.1 Básicos
4.2 Unificación de tipos de datos en enumeraciones
4.3 Ejemplo de unificación de tipos de datos
5. Conclusiones
6. Literatura & Enlaces

1. Introducción

En este blog ya se ha discutido acerca de los fundamentales de enumeraciones en C# través de una serie de 5 artículos. Ahora llega el momento de entrar en otros temas avanzados acerca de este tipo de dato. Los temas a discutir son:
  1. Unificación de tipos de datos 
  2. Conversiones 
  3. Enumeración de Valores 
  4. Semántica de Enumeraciones
La primera parte -Unificación de tipos de datos-, describe las ventajas de usar el mecanismo de unificación de tipos de datos para enumeraciones. Para esto es necesario que el lector se familiarice con los detalles técnicos de la clase System.Enum, el cual actúa como clase base para todas las enumeraciones integradas en .NET Framework y las propias personalizadas por el programador.

2. Palabras Clave

  • Conversión
  • Enumeración
  • Tipo de dato
  • Unificación de tipo de dato

3. Sistema de Unificación de Tipos de Datos

En C# todos los tipos de datos cuentan con miembros función para tareas comunes; como por ejemplo la invocación de los métodos ToString o GetType para la representación literal de una instancia y la obtención del tipo de dato para una instancia particular, respectivamente. Esto conforma lo que se llama el aspecto simétrico del lenguaje.

[Nota: Más acerca de este concepto en Tipos de Datos Básicos en C#.]

4. Enumeraciones

4.1 Básicos

En la serie Enumeraciones en C#, conformada por este conjunto de artículos 
se describe con detalle los conceptos básicos acerca de enumeraciones: 
  • combinación de miembros, 
  • validación de igualdad, 
  • operadores lógicos, 
  • conversiones elementales.

4.2 Unificación de tipos de datos en enumeraciones

En el namespace System se halla la clase Enum ("Enum Class", 2016). Este elemento de programa es el que permite mantener unificadas las enumeraciones integradas en la Framework Class Library (FCL) y las propias enumeraciones creadas por el programador.

Además, Enum provee un conjunto de métodos static utilitarios para el trabajo con enumeraciones. Entre los que se podría mencionar están los de la Figura 1
Métodos clase Enum
Figura 1. Métodos clase Enum ("Enum Class", 2016).

Los métodos utilitarios definidos en esta clase son básicamente para realizar conversiones y obtención de los miembros definidos en la enumeración (Albahari, 2012).

4.3 Ejemplo de uso unificación de tipos de datos

El siguiente código en C# ilustra la implementación del sistema de unificación de tipos de datos para enumeraciones. El programador comprenderá este concepto por medio del casting implícito de un miembro de una enumeración integrada en la FCL y otra personalizada.

Dimension (líneas 9-14) es una enumeración personalizada definida por el programador. Posee miembros para distinguir diferentes tipos de dimensiones para un objeto particular.


Por otro lado, con el método Visualizar (líneas 18-21) se invoca al método GetType ("Object.GetType Method()", 2016) para la obtención del tipo de dato para el argumento dado; además, se incluye la representación literal del argumento; en este caso el valor de la enumeración: ToString.


Este es el resultado obtenido en la salida estándar de LINQPad

UserQuery+Dimension.Grande
System.ConsoleColor.Red
System.Windows.Forms.DialogResult.Retry

5. Conclusiones

Se estudió la clase System.Enum. Esta clase representa el mecanismo de unificación de tipo de dato para enumeraciones. También se presentó una demostración en código fuente C# que ilustra el uso de la conversión implícita de enumeraciones, y cómo éstas mantienen el sistema de unificación de tipo de dato a través Enum.

La segunda parte de esta serie ilustrará la realización de conversiones para enumeraciones.

6. Literatura & Enlaces

Albahari, J., Albahari, B. (2012). C# 5.0 in a Nutshell. United States: O'Reilly Media.
Enum Class (System) (2016, julio 23). Recuperado desde: https://msdn.microsoft.com/en-us/library/system.enum(v=vs.110).aspx
Tipos de Datos Básicos en C# (2016, julio 23). Recuperado desde: https://ortizol.blogspot.com.co/2013/07/tipos-basicos-en-c-parte-2.html
Enumeraciones en C# - Parte 1 (2016, julio 23). Recuperado desde: https://ortizol.blogspot.com.co/2014/05/enumeraciones-en-c-parte-1.html
Enumeraciones en C# - Parte 2 (2016, julio 23). Recuperado desde: https://ortizol.blogspot.com.co/2014/05/enumeraciones-en-c-parte-2.html
Enumeraciones en C# - Parte 3 (2016, julio 23). Recuperado desde: https://ortizol.blogspot.com.co/2014/05/enumeraciones-en-c-parte-3.html
Enumeraciones en C# - Parte 4 (2016, julio 23). Recuperado desde: https://ortizol.blogspot.com.co/2014/05/enumeraciones-en-c-parte-4.html
Enumeraciones en C# - Parte 5 (2016, julio 23). Recuperado desde: https://ortizol.blogspot.com.co/2014/05/enumeraciones-en-c-parte-5.html
Object.GetType Method (System) (2016, julio 23). Recuperado desde: https://msdn.microsoft.com/en-us/library/system.object.gettype(v=vs.110).aspx


O

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.