iniciando un valor enum a null? ( .NET)

Es de hecho que muchas veces usaremos enum, para grupos de código, y es una buena práctica hacerlo. Y es que es útil a simple vista, cuando usamos un mensajes en Windows Forms, con la enumeración MessageBoxButtons, elegimos cuantos botones deseamos que tenga la ventana de diálogo. Además que también sirve como filtro y ayuda a protegerse de un input indeseado del usuario. También hay la opción de que un valor de una enumeración tenga opciones múltiples, lo hace manejandolo como bits, para eso usamos el atributo Flags.

Ahora pero que pasa si quiere iniciar la variable enum en null, y es lo mismo que pasa cuando queremos iniciar una fecha en null. Sobre todo en el manejo de capas, para pasar variables entre capas muchas veces se debe colocar una fecha a la mala, aunque no uses la variable y aunque no es un problema no es lo ideal.

Y es así que surgen nullable types, en un post anterior ya hemos hablado de ellos. Ahora, como usamos los nullable types en el manejo de capas, pues lo pueden encontrar usando el Web Service Software Factory. En gotdotnet podemos encontrar unos HOLs de como usar el Service Factory.

Ah por cierto si comparamos un tipo valor con null, siempre será falso, ya que un tipo valor nunca es null. Es por eso que se hace necesario el usar nullable types. También se puede usar struct con nullable, pero hay unos artificios que tienes que hacer.

Ahora veamos como lo usaría la enumeración Mes:

   Nullable<Mes> m2 = null;
   Console.WriteLine("m2 {0}", (m2.HasValue) ? "no es nulo" : "es nulo");

   m2 = Mes.Febrero;
   if (m2 != null)
   { 
      Console.WriteLine("el valor de m2 es: {0}", (int)m2);
   }

Obviamente que una enumeración Mes, parece del curso de estructura de datos, pero ya en un ambiente real, podríamos usar una enumeración para un post o noticia, es decir noPublicada, Publicada, Spam, etc. De esa manera en todo mi sistema de capas no tengo porque recordar que código era el estado de noticia publicada, para eso uso una enumeración. Pero al final en la base de datos lo que quiero es el código es decir el (int).

Saludos,


Post cruzado
Published 22/12/2006 13:58 por Sergio Tarrillo
Archivado en: ,
Comparte este post:
http://geeks.ms/blogs/sergiotarrillo/archive/2006/12/22/7851.aspx

Comentarios

# databindig a una enumeracion (enum)

Holas! Ya en un post del anio pasado xD, habíamos comentado como usar una estructura enumeración en el

Sunday, January 07, 2007 7:25 AM por SergioTarrillo's Blog