Man ir klase ar nosaukumu Pieprasījumi
(daudzskaitlī). Šajā klasē ir enums ar nosaukumu Question
(vienskaitlī), kas izskatās šādi.
public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6
}
Šajā Questions
klasē man ir get(int foo)
funkcija, kas atgriež Questions
objektu šim foo
. Vai ir kāds vienkāršs veids, kā iegūt veselu skaitli no enuma, lai es varētu darīt kaut ko līdzīgu Questions.Get(Question.Role)
?
Vienkārši atveidojiet enumu, piemēram.
int something = (int) Question.Role;
Iepriekš minētais princips darbosies lielākajā daļā enumu, kurus var redzēt dabā, jo enuma pamattips pēc noklusējuma ir int
.
Tomēr, kā norāda cecilphillip, enumiem var būt dažādi pamattipi.
Ja enums ir deklarēts kā uint
, long
vai ulong
, tas ir jāpārveido uz enuma tipu; piem.
enum StarsInMilkyWay:long {Sun = 1, V645Centauri = 2 .. Wolf424B = 2147483649};
jāizmanto
long something = (long)StarsInMilkyWay.Wolf424B;
Tas ir vienkāršāk, nekā jūs domājat - enum jau ir int. Tas tikai jāatgādina:
int y = (int)Question.Role;
Console.WriteLine(y); // prints 2