Altro
Ottenere un valore int da enum in C#
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)
?
1680
3
Basta lanciare l'enum, ad esempio
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
oulong
, dovrebbe essere castato al tipo dell'enum; ad esempio persi dovrebbe usare
Il risultato sarà
valore == 2
.È più facile di quanto si pensi: un enum è già un int. Ha solo bisogno di essere ricordato: