Enum en Visual Basic .NET

Hola a todos, hoy os voy a enseñar como crear enumerados en Visual Basic .NET.

Un enumerado, al igual que en Java, nos permite agrupar una serie de valores predefinidos que tienen algo en común. Es como una especie de array con valores predefinidos para entenderlo mejor.

Los enumerados son muy útiles cuando necesitamos que el usuario elija entre unas opciones concretas. Por ejemplo, el estado de un pedido puede ser «Procesado», «Enviado» y «Recibido», sería un buen ejemplo para que el usuario solo pueda usar estos valores.

En Visual Studio, de momento, no se puede crear de manera directa, es decir, mediante alguna plantilla pero como es poco código, lo podemos rellenar nosotros mismos.

Para crear un enumerado, simplemente desde nuestro proyecto: agregar -> nuevo elemento -> archivo de codigo. Nos abrirá un fichero desde cero.

Otra opción es ponerlo en algún modulo donde sea accesible, esto ya es cosa tuya.

Simplemente escribe:


Enum nombre_que quieras
     literal1
     literal2
     ...
end enum


Os dejo un ejemplo con los días de la semana:

Este enum lo podemos llamar desde donde queramos, simplemente poniendo el nombre del enumerado y un punto a continuación.

Normalmente nosotros queremos que cuando escribamos el literal (algún día de la semana) nos devuelva ese literal. Debe llamarse de la misma manera respetando mayúsculas y minúsculas.

Aquí os dejo un ejemplo:


Module Module1

    Sub Main()


        Dim dia As String = Console.ReadLine()
        Dim dia_enumerado As Dias = DirectCast([Enum].Parse(GetType(Dias), dia), Dias)
        Select Case dia_enumerado
            Case Dias.Lunes
                Console.WriteLine("Es Lunes")
            Case Dias.Martes
                Console.WriteLine("Es Martes")
            Case Dias.Miercoles
                Console.WriteLine("Es Miercoles")

            Case Dias.Jueves
                Console.WriteLine("Es Jueves")

            Case Dias.Viernes
                Console.WriteLine("Es Viernes")

            Case Dias.Sabado
                Console.WriteLine("Es Sabado")
            Case Dias.Domingo
                Console.WriteLine("Es Domingo")

        End Select


        Console.ReadLine()

    End Sub

End Module


También podemos ver los valores de y los literales, de esta forma

Module Module1

    Sub Main()

        'Muestra los dias de la semana
        Console.WriteLine("Dias de la semana")
        Dim literales = [Enum].GetNames(GetType(Dias))
        For Each literal In literales
            Console.WriteLine(literal)
        Next

        'Muestra los valores asociados
        Console.WriteLine("Valores")
        Dim valores = [Enum].GetValues(GetType(Dias))
        For Each value In valores
            Console.WriteLine(value & " ")
        Next

        Console.ReadLine()

    End Sub

End Module

Por último, decir que los literales, solo pueden tener valores númericos asociados, en ningún momento Strings u otro tipo.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

1 comentario

  1. Noon

    Como puedo dejar una tabulación antes de lunes, si quisiera imprimir en horizontal, de cara a un horario o similar?

Deja una respuesta

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