Tengo una clase llamada Preguntas
(plural). En esta clase hay un enum llamado Preguntas
(singular) que tiene el siguiente aspecto.
public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6
}
En la clase Preguntas
, tengo una función get(int foo)
que devuelve un objeto Preguntas
para ese foo
. ¿Existe una manera fácil de obtener el valor entero del enum para poder hacer algo como Questions.Get(Question.Role)
?
Sólo hay que lanzar el enum, por ejemplo
int something = (int) Question.Role;
Lo anterior funcionará para la gran mayoría de los enums que se ven en la naturaleza, ya que el tipo subyacente por defecto para un enum es int
.
Sin embargo, como señala cecilphillip, los enums pueden tener diferentes tipos subyacentes.
Si un enum se declara como uint
, long
, o ulong
, debe ser convertido al tipo del enum; por ejemplo, para
enum StarsInMilkyWay:long {Sun = 1, V645Centauri = 2 .. Wolf424B = 2147483649};
se debe utilizar
long something = (long)StarsInMilkyWay.Wolf424B;
Es más fácil de lo que crees: un enum ya es un int. Sólo hay que recordarlo:
int y = (int)Question.Role;
Console.WriteLine(y); // prints 2