Fecha y hora actual: Jueves 17 Ene 2019 04:34
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Curso VB .NET - Tema 1.30 - Enumeraciones, VB 2005

Responder al Tema

Índice del Foro > Visual Basic .NET > Curso VB .NET - Tema 1.30 - Enumeraciones, VB 2005

Autor Mensaje
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3200
Ubicación: Valencia - España

Mensaje Publicado: Martes 16 Jun 2009 09:45

Título del mensaje: Curso VB .NET - Tema 1.30 - Enumeraciones, VB 2005

Responder citando

Curso de programación en .NET - Tema 1.30 - Enumeraciones, VB 2005.


1. Enumeraciones, VB.
1.1 Objetivos del tema.

Ilustrar el uso de las enumeraciones en VB.

1.2 Introducción.
El uso de las enumeraciones en VB está muy logrado, pues el entorno de programación las integra de una manera muy cómoda para el programador, utilizándola como ayuda en las llamadas a los procedimientos y funciones.

1.3 Creación.
La sintaxis a usar es la que vemos a continuación
Código:
Enum Monedas
   Euro = 1
   Dolar = 2
   Libra = 3
   Yen = 4
End Enum

Enum Monedas
   Euro
   Dolar
   Libra
   Yen
End Enum


En ambos casos la sintaxis es correcta, la diferencia es que en el primer caso forzamos los valores, Euro sería uno, y en el segundo sería cero, que es el valor que VB le da por defecto.

Es la definición del nombre de la enumeración.
Código:
Enum Monedas
   Euro = 1
   Dolar = 2
   Libra = 3
   Yen = 4


Es el contenido.
Código:
End Enum


Es el final de la descripción de los elementos de la enumeración. Una de las utilizaciones se refleja en la imagen:


Podemos observar como se introduce un dato en la inicialización del objeto, y luego al llegar al campo de la enumeración, automáticamente aparece el contenido de la enumeración, ya que el dato que ahí se espera es del tipo Monedas, y solo hay que elegir una de las opciones disponibles, que además estamos viendo.
Código:
Public Function Convertir(ByVal Cual As Monedas) As Double
  Select Case Moneda
    Case Monedas.Euro
       Select Case Cual
          Case Monedas.Dolar
             Convertir = Import * 1.22
          Case Monedas.Libra
          Case Monedas.Yen
       End Select
    Case Monedas.Dolar
   
    Case Monedas.Libra
   
    Case Monedas.Yen
   
  End Select
End Function


Lo mismo sucede con la escritura de un Select Case, por ejemplo, en la que en el momento de escribir la palabra case se despliega automáticamente la enumeración para poder ver los valores disponibles y su valor.


Su uso en el principal quedaría:
Código:
Module Module1
   Sub Main()
    Dim Importe As Double = Console.ReadLine
    Dim Objeto As Ejemplos = New Ejemplos(Importe, Ejemplos.Monedas.Euro)
    Console.WriteLine(Objeto.Convertir(Ejemplos.Monedas.Dolar))
    Console.ReadLine()
  End Sub
End Module


1.4 Recorrido
El contenido de una enumeración se puede recorrer capturando primero el contenido mediante la siguiente línea.
Código:
' Se captura los códigos
Valores = System.Enum.GetValues(GetType(Monedas))
' Se captura los nombres
Nombres = System.Enum.GetNames(GetType(Monedas))


Para ello hay que declarar las variables Valores y Nombres del tipo Array
Código:
Dim Valores As Array
Dim Nombres As Array


Como el recorrido se hará basándose en un bucle del tipo
Código:
For each variable in Colección


La variable en este caso deberá ser del tipo String
Código:
Dim item As String


Una vez que disponemos de todos los elementos, ya podemos ejecutar el bucle, primero el de código.
Código:
' Se pasa al vector los códigos
X=0
For Each item In Valores
   V(X).Codigo = CInt(item)
   X=X+1
Next


Y otro bucle para los nombres, el orden de ejecución de los bucles es indistinto.
Código:
' Se pasa al vector los nombres
X=0
For Each item In Nombres
   V(X).Denom = item
   X=X+1
Next


Y ya disponemos del contenido de la enumeración en un vector, para el uso que deseemos.

1.5 Conclusiones.
El uso de una enumeración se convierte en imprescindible si se desea un programa ordenado y claro.
No tiene sentido el uso de valores enteros en un programa, cuando se pueden sustituir por descripciones, que siempre reducirá el número de posibles errores.

1.6 Ejercicios propuestos.
1. Declarar una enumeración para los posibles valores del estado de un semáforo.
2. Declarar una enumeración para los posibles valores de seguridad en los accesos que pueda tener una persona las distintas zonas de un complejo con varios niveles de seguridad.
3. Realizar la carga de los valores de una de las enumeraciones anteriores y visualizarlas por pantalla.

1.7 Solución a los ejercicios propuestos.
1. Declarar una enumeración para los posibles valores del estado de un semáforo.
Código:
Enum Semaforo
   Abierto = 1
   Cambia = 2
   Cerrado = 3
End Enum


2. Declarar una enumeración para los posibles valores de seguridad en los accesos que pueda tener una persona las distintas zonas de un complejo con varios niveles de seguridad.
Código:
Enum Seguridad
  Prohibido = 0
  Normal = 1
  Restringidas = 2
  Total = 3
End Enum


3. Realizar la carga de los valores de una de las enumeraciones anteriores y visualizarlas por pantalla.
Código:
Module Ejemplos
  Enum Seguridad
    Prohibido = 0
    Normal = 1
    Restringida = 2
    Total = 3
  End Enum
 
  Structure Enumeracion
    Dim Codigo As Integer
    Dim Denom As String
  End Structure
 
  Sub Main()
    Dim X As Integer
    Dim item As String
    Dim Valores As Array
    Dim Nombres As Array
    ' Se captura los códigos
    Valores = System.Enum.GetValues(GetType(Seguridad))
    ' Se captura los nombres
    Nombres = System.Enum.GetNames(GetType(Seguridad))
    ' Se captura el número de elementos de la enumeración
    X = Valores.Length -1
    ' Se defina el vector con el valor de X,
    Dim V(X) As Enumeracion
    ' Se pasa al vector los códigos
    X=0
   
    For Each item In Valores
       V(X).Codigo = CInt(item)
       X=X+1
    Next
 
    ' Se pasa al vector los nombres
    X=0
    For Each item In Nombres
       V(X).Denom = item
       X=X+1
    Next
    ' Se visualiza el contenido
    X=0
    Do
       Console.WriteLine("Código es {0} y su valor {1} ", V(X).Codigo, V(X).Denom)
       X=X+1
    Loop Until X = V.Length
    Console.ReadLine()
  End Sub
End Module




Autor del curso: Casiopea


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Curso de PHP-WordPress avanzado

wordpressadict PHP 1 Domingo 27 Nov 2016 19:59 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Curso fundamentos de programación

Yaser Programación en general 0 Miércoles 18 May 2016 00:28 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Curso de Desarrollo en Inteligencia Artificial

JL Iglesias Feria Programación de juegos o videojuegos 7 Miércoles 02 Dic 2015 18:20 Ver último mensaje
El foro no contiene ningún mensaje nuevo

SQL Express 2005 Base de datos dañada necesita ...

ramonmerin Programación en general 0 Miércoles 28 Oct 2015 12:22 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Anuncio Curso Aprendiendo a Programar con MicroSoft

Tesis Programación Web en general 0 Miércoles 25 Mar 2015 12:34 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,