Enumerando el uso de las enumeraciones

‘ A menudo dejamos de utilizar las enumeraciones por falta de comprensión.

‘ Recibo algunas preguntas en tanto a cómo utilizarlas, el presente ejemplo intenta
‘ clarificar su uso, así como dar algunas perspectivas nuevas, dando a conocer
‘ algunas características poco conocidas.

‘ Por definición, una enumeración corresponde a una integral asociada a un contenido como constante

‘ En la Sub New, destacar…
   .destacar como en ‘Nombres’ obtenemos el tipo de la enumeración ‘Electrodomésticos’
   .el uso de [enum].GetNames en forma de array para añadir todos los ítems sin necesidad de iteraciones
   .Para hacer mas legible el código utilizando una expresión declarativa de la misma

   .Identificar su correspondencia

 

‘ Si mañana tengo una escapada hablaremos del atributo para uso como flag : <FlagsAttribute>

Class EnumeracionSimple
    Inherits Form

    Enum Electrodomesticos
        Horno
        Nevera
        Encimera
        Campana
        Batidora
        Plancha
        Secadora
        Balanza
    End Enum

    Sub New()
        AñadirComboConEnumeracion() ‘Un combo con los ítems de la enumeración
        CodigoMasLeible(7)
        Identificando(2)

    End Sub

 

    ‘Un combo con los ítems de la enumeración
    Sub AñadirComboConEnumeracion()
        ‘Al crear la clase
        Dim MiCombo As New ComboBox               ‘Crear ComboBox
        Dim Nombres = GetType(Electrodomesticos)  ‘Obtener el tipo de la enum
        ‘Un combobox con toda la enumeración
        MiCombo.Items.AddRange([Enum].GetNames(Nombres).ToArray)    ‘Añadir todos sus nombres
        MiCombo.Dock = DockStyle.Fill                               ‘Dock
        Me.Controls.Add(MiCombo)                                    ‘Añadir el Combo al Form
    End Sub

    ‘Clarificando cada caso en la selección
    Sub CodigoMasLeible(ByVal Seleccion As Integer)
        Select Case Seleccion
            Case Electrodomesticos.Balanza
                MsgBox(«Hola desde Balanza»)
            Case Electrodomesticos.Batidora
                MsgBox(«Hola desde Batidora»)
            Case Electrodomesticos.Encimera
                MsgBox(«Hola desde Encimera»)
        End Select
    End Sub

    ‘Identificando la selección
    Sub Identificando(ByVal Electodomestico As Integer)
        MessageBox.Show(«Su nombre es  : « + CType(Electodomestico, Electrodomesticos).ToString)
    End Sub
End
Class

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *