Thursday, 22 March 2018

Get int value from enum in C#




I have a class called Questions (plural). In this class there is an enum called Question (singular) which looks like this.



public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6

}


In the Questions class, I have a get(int foo) function that returns a Questions object for that foo. Is there an easy way to get the integer value from the enum so I can do something like Questions.Get(Question.Role)?


Answer



Just cast the enum, e.g.



int something = (int) Question.Role;



The above will work for the vast majority of enums you see in the wild, as the default underlying type for an enum is int.



However, as cecilphillip points out, enums can have different underlying types.
If an enum is declared as a uint, long, or ulong, it should be cast to the type of the enum; e.g. for



enum StarsInMilkyWay:long {Sun = 1, V645Centauri = 2 .. Wolf424B = 2147483649};


you should use




long something = (long)StarsInMilkyWay.Wolf424B;

No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...