Turiu klasę, kuri vadinasi Klausimai
(daugiskaita). Šioje klasėje yra enumas, vadinamas Klausimas
(vienaskaita), kuris atrodo taip.
public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6
}
Klasėje Questions
turiu funkciją get(int foo)
, kuri grąžina Questions
objektą tam foo
. Ar yra paprastas būdas gauti sveikojo skaičiaus reikšmę iš sąrašo, kad galėčiau padaryti kažką panašaus į Questions.Get(Question.Role)
?
Tiesiog atvaizduokite enumą, pvz.
int something = (int) Question.Role;
Pirmiau aprašytas būdas tinka daugumai enumų, kuriuos galima pamatyti gamtoje, nes numatytoji pagrindinė enumo rūšis yra int
.
Tačiau, kaip nurodo cecilphillip, enumai gali turėti skirtingus pagrindinius tipus.
Jei enumas deklaruojamas kaip uint
, long
arba ulong
, jis turėtų būti perskaičiuotas į enumo tipą; pvz.
enum StarsInMilkyWay:long {Sun = 1, V645Centauri = 2 .. Wolf424B = 2147483649};
reikėtų naudoti
long something = (long)StarsInMilkyWay.Wolf424B;
Tai paprasčiau, nei manote - enum jau yra int. Apie tai reikia tik priminti:
int y = (int)Question.Role;
Console.WriteLine(y); // prints 2