Para utilizar una enumeración definida en nuestra aplicación, debemos declarar una variable, a la que
daremos como tipo de dato el mismo de la enumeración. Una vez creada, la forma de asignar un valor
es muy sencilla, ya que en cuanto escribamos el operador de asignación, el editor de código nos abrirá
una lista con los posibles valores que admite la variable, que corresponderán, evidentemente, sólo a los
de la enumeración. De esta forma, facilitamos enormemente la escritura de código, ya que se reducen
las posibilidades de error en la asignación de valores a la variable enumerada. Ver Figura 125.
Figura 125. Asignación de valor a una variable de tipo enumerado. |
El valor almacenado en una variable de enumeración corresponderá al número de la constante que
hayamos seleccionado. Al declarar la variable, su valor inicial será cero.
No obstante, la manipulación de una enumeración va mucho más allá de la asignación y recuperación
simple de las constantes que componen la enumeración. Cuando declaramos una variable de una
enumeración, el contenido real de dicha variable es un objeto de la clase Enum; por lo tanto, podemos
utilizar los métodos de dicho objeto, para realizar diversas operaciones. Para tareas genéricas, la clase
Enum también dispone de métodos compartidos que podremos ejecutar directamente, sin necesidad de
crear una enumeración previa. El Código fuente 305 muestra algunos ejemplos.
Module Module1
Public Enum Musicas As Integer
Rock
Blues
NewAge
Funky
End Enum
Sub Main()
' creamos una variable de enumeración
' y le asignamos valor
Dim lxMusic As Musicas
lxMusic = Musicas.NewAge
' el contenido de la variable es el número asignado
' a la constante
Console.WriteLine(lxMusic)
' el método ToString() permite mostrar el nombre
' de la constante elegida de la lista que tiene
' la enumeración
Console.WriteLine(lxMusic.ToString("G"))
' obtener los valores de las constantes de la enumeración
' con GetValues(), y los nombres con GetNames(); estos métodos
' son compartidos de la clase Enum, y reciben como parámetro una
' variable de enumeración de la que debe obtenerse el tipo ejecutando
' su método GetType(); devuelven un array con los datos pedidos
Dim liValores() As Integer
Dim lsNombres() As String
Dim liContador As Integer
liValores = System.Enum.GetValues(lxMusic.GetType())
lsNombres = System.Enum.GetNames(lxMusic.GetType())
Console.WriteLine()
Console.WriteLine("Valor - Nombre")
' recorrer los arrays y mostrar su contenido
For liContador = 0 To UBound(liValores)
Console.WriteLine(liValores(liContador) & Space(7) & _
lsNombres(liContador))
Next
' comprobar si un nombre introducido por el
' usuario está entre los nombres de las
' constantes en la enumeración
Dim lsNombreMusica As String
Console.WriteLine("Introducir nombre de constante")
lsNombreMusica = Console.ReadLine()
If System.Enum.IsDefined(lxMusic.GetType(), lsNombreMusica) Then
Console.WriteLine("El tipo de música sí está en la enumeración")
Else
Console.WriteLine("El tipo de música no está en la enumeración")
End If
Console.ReadLine()
End Sub
End Module
Código fuente 305
No hay comentarios:
Publicar un comentario