Visual Basic.NET - enum

   
Vista:

enum

Publicado por Orlando (65 intervenciones) el 18/06/2009 00:47:13
hola a todos saben tengo una duda ojala que me puedan ayudar normalmente los enum son asi verdad

public enum nombre
insertar = 1
end enum

y cuando uno los llama a este enum retorna un 1

mi pregunta es la siguiente como puedo hacer para que en vez de retornar el numero 1 retorne la letra 1 por ejemplo algo asi

public enum nombre

insertar= "uno"

end enum

se que este esta manl pero me gustaria saber sio existe algo que se pueda hacer please ayuda please
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:enum

Publicado por Joan F (129 intervenciones) el 18/06/2009 06:53:13
Hola,

Un enum solo acepta valores numéricos enteros. El tipo puede variar (puede ser byte, integer [por defecto], long, ... ) pero ha de ser un valor numérico entero.

No se exactamente lo que quieres hacer, pero una forma rápida y simple de obtener el valor en texto, seria crear una función con un select case que devolviera el valor de texto de cada elemento del enum:

Public Enum nombre
insertar = 1
'...

End Enum

Public Shared Function TextoEnumeracion(ByVal valor As nombre) As String

Select Case valor
Case nombre.insertar
Return "uno"

'...

Case Else
Return ""
End Select

End Function

No se si es esto lo que estas buscando. Sino si puedes dar más detalles de lo que estas intentando obtener quizá te pueda dar más ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:enum

Publicado por Orlando (65 intervenciones) el 18/06/2009 22:55:42
hola de nuevo jeje

lo que pasa es que quiero gestionar los nombres de los SP y quiero hacer algo parecido a los enum
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:enum

Publicado por Joan F (129 intervenciones) el 20/06/2009 00:08:49
Hola,

La verdad, no se que es o a que te refieres con SP ...

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.

Como te he dicho desconozco que es un SP pero una posibilidad, si la lista es una lista de longitud fija con valores fijos que sabes que no cambiara nunca, es crear un modulo con los valores como constantes:

Public Module SPs
Public Const INSERTAR As String = "UNO"
...
End Module

entonces en el código puedes llamar a SPs.INSERTAR que contiene el valor "uno"

Si la lista no es de longitud fija o bien los valores son variables entonces yo me miraría las clases Collection o Dictionary.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar