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.
Como puedo dejar una tabulación antes de lunes, si quisiera imprimir en horizontal, de cara a un horario o similar?