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?
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
debes estar llamando mal a la funcion, por ejemplo esto funciona bien:
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:
Call EjecutaAccion(0)
tambien funciona.
saludos.
Muchas gracias, ya lo entendi :xD
Saludos ::)