elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [Duda] Las enumeraciones (Enum) (Solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] Las enumeraciones (Enum) (Solucionado)  (Leído 4,029 veces)
Senior++


Desconectado Desconectado

Mensajes: 957

Ama y haz lo que te de la gana


Ver Perfil
[Duda] Las enumeraciones (Enum) (Solucionado)
« en: 1 Enero 2012, 17:29 pm »

Edito: A ver ... los enums están pensados para evitar "números mágicos" en el código. La idea es evitar código como este:

Public Sub EjecutaAccion(ByVal opciones As Integer)

If opciones = 1 Then
'Haz algo
ElseIf opciones = 3 Then
'haz algo diferente
ElseIf opciones = 4 Then
'haz otra cosa

'...

End If

End Sub

Este código es difícil de comprender y mantener, especialmente sin documentación, ya que al cabo del tiempo se olvidan la descripción de los valores. En cambio el mismo código con enums:

Public Enum Opciones
Ninguna = 0
Visualizar = 1
Editar = 2
Borrar = 4
'...
End Enum

Public Sub EjecutaAccion(ByVal eOpciones As Opciones)

If eOpciones = Opciones.Visualizar Then
'Haz algo
ElseIf eOpciones = (Opciones.Visualizar Or Opciones.Editar) Then
'haz algo diferente
ElseIf eOpciones = Opciones.Borrar Then
'haz otra cosa

'...

End If

End Sub

Con los enums el programa casi se auto-documenta y se facilita mucho su comprensión y mantenimiento.


Pero sigo sin entender!, ese código esta mal da error en: Public Sub EjecutaAccion(ByVal eOpciones As Opciones)

Porfavor alguien podría poner un claro ejemplo?


« Última modificación: 2 Enero 2012, 13:12 pm por SixToex (Agares) » En línea

Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
Jenhyal

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: [Duda] Las enumeraciones (Enum)
« Respuesta #1 en: 1 Enero 2012, 22:19 pm »

Hola, SixToex (Agares).

A ver si te sirven los ejemplos de elguille (por cierto, un máquina en todo esto):

http://www.elguille.info/NET/cursoVB.NET/glosarioNET.htm#Enumeraciones


En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: [Duda] Las enumeraciones (Enum)
« Respuesta #2 en: 1 Enero 2012, 22:37 pm »

debes estar llamando mal a la funcion, por ejemplo esto funciona bien:

Código
  1. Public Enum Opciones
  2.    Ninguna = 0
  3.    Visualizar = 1
  4.    Editar = 2
  5.    Borrar = 4
  6. End Enum
  7.  
  8. Private Sub EjecutaAccion(ByVal eOpciones As Opciones)
  9.  
  10.    If eOpciones = Opciones.Visualizar Then
  11.        MsgBox "Visualizar"
  12.    ElseIf eOpciones = Editar Then
  13.        MsgBox "Editar"
  14.    ElseIf eOpciones = Opciones.Borrar Then
  15.        MsgBox "Borrar"
  16.    ElseIf eOpciones = Opciones.Ninguna Then
  17.        MsgBox "Ninguna"
  18.    End If
  19.  
  20. End Sub
  21.  
  22. Private Sub Form_Load()
  23.    Call EjecutaAccion(Ninguna)
  24. End Sub

y si la llamas con el numero:

Código
  1. Call EjecutaAccion(0)

tambien funciona.

saludos.
En línea

Senior++


Desconectado Desconectado

Mensajes: 957

Ama y haz lo que te de la gana


Ver Perfil
Re: [Duda] Las enumeraciones (Enum)
« Respuesta #3 en: 2 Enero 2012, 13:11 pm »

Muchas gracias, ya lo entendi  :xD

Saludos ::)
En línea

Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con Enum
Programación Visual Basic
SheKeL_C$ 1 2,069 Último mensaje 19 Diciembre 2008, 01:10 am
por seba123neo
Duda sobre matrices y los enum
Programación C/C++
jorgefer92 1 2,906 Último mensaje 26 Enero 2011, 14:06 pm
por eustakio12345654321
[Duda] Unsigned int y enumeraciones
Programación C/C++
xRodak 5 2,994 Último mensaje 6 Febrero 2014, 02:20 am
por rir3760
Problema con ejercicio (tipo enum concretamente) SOLUCIONADO
Ejercicios
MCLucro 1 2,824 Último mensaje 22 Marzo 2015, 19:16 pm
por MCLucro
duda con tipos enum
Programación C/C++
daru 1 1,990 Último mensaje 1 Diciembre 2017, 16:09 pm
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines