Saturday, January 26, 2019

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

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...