elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 05:17  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  [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 450 veces)
SixToex (Agares)


Desconectado Desconectado

Mensajes: 424


Con números se puede demostrar cualquier cosa.


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

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 por SixToex (Agares) » En línea

"Todas las personas nacemos destinadas a algo, pero todos compartimos un mismo destino, la muerte..."
Jenhyal

Desconectado Desconectado

Mensajes: 13


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

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.214



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

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

Código
Public Enum Opciones
   Ninguna = 0
   Visualizar = 1
   Editar = 2
   Borrar = 4
End Enum
 
Private Sub EjecutaAccion(ByVal eOpciones As Opciones)
 
   If eOpciones = Opciones.Visualizar Then
       MsgBox "Visualizar"
   ElseIf eOpciones = Editar Then
       MsgBox "Editar"
   ElseIf eOpciones = Opciones.Borrar Then
       MsgBox "Borrar"
   ElseIf eOpciones = Opciones.Ninguna Then
       MsgBox "Ninguna"
   End If
 
End Sub
 
Private Sub Form_Load()
   Call EjecutaAccion(Ninguna)
End Sub

y si la llamas con el numero:

Código
Call EjecutaAccion(0)

tambien funciona.

saludos.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
SixToex (Agares)


Desconectado Desconectado

Mensajes: 424


Con números se puede demostrar cualquier cosa.


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

Muchas gracias, ya lo entendi  :xD

Saludos ::)
En línea

"Todas las personas nacemos destinadas a algo, pero todos compartimos un mismo destino, la muerte..."
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
enum y switch
Programación C/C++
RadicalEd 2 853 Último mensaje 22 Septiembre 2005, 01:30
por Casidiablo
Duda con Enum
Programación Visual Basic
SheKeL_C$ 1 497 Último mensaje 19 Diciembre 2008, 01:10
por seba123neo
[DirectX8] APIS, Estructuras, constantes, Enumeraciones.....
Programación Visual Basic
BlackZeroX (Astaroth) 6 1,043 Último mensaje 28 Octubre 2010, 01:47
por raul338
Duda sobre matrices y los enum
Programación C/C++
jorgefer92 1 917 Último mensaje 26 Enero 2011, 14:06
por eustakio12345654321
Acerca de los tipos Enum
Programación Visual Basic
RHL 5 681 Último mensaje 20 Septiembre 2011, 18:26
por RHL
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines