Ho una classe chiamata Questions
(plurale). In questa classe c'è un enum chiamato Question
(singolare) che assomiglia a questo.
public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6
}
Nella classe Questions
, ho una funzione get(int foo)
che restituisce un oggetto Questions
per quel foo
. C'è un modo semplice per ottenere il valore intero dall'enum in modo da poter fare qualcosa come Questions.Get(Question.Role)
?
Basta lanciare l'enum, ad esempio
int something = (int) Question.Role;
Quanto sopra funzionerà per la stragrande maggioranza degli enum che vedrete in natura, poiché il tipo di base predefinito per un enum è int
.
Tuttavia, come fa notare cecilphillip, gli enum possono avere diversi tipi sottostanti.
Se un enum è dichiarato come uint
, long
o ulong
, dovrebbe essere castato al tipo dell'enum; ad esempio per
enum StarsInMilkyWay:long {Sun = 1, V645Centauri = 2 .. Wolf424B = 2147483649};
si dovrebbe usare
long something = (long)StarsInMilkyWay.Wolf424B;
È più facile di quanto si pensi: un enum è già un int. Ha solo bisogno di essere ricordato:
int y = (int)Question.Role;
Console.WriteLine(y); // prints 2