我有一个名为问题'(复数)的类。在这个类中,有一个叫做
问题'(单数)的枚举,看起来像这样。
public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6
}
在问题'类中,我有一个
get(int foo)'函数,为该foo'返回一个
问题'对象。有没有一种简单的方法从枚举中获取整数值,以便我可以做类似于`Questions.Get(Question.Role)'的事情?
只需将该枚举抛出,例如
int something = (int) Question.Role;
上述方法对你在野外看到的绝大多数枚举都有效,因为枚举的默认底层类型是`int'。
然而,正如cecilphillip所指出的,枚举可以有不同的基础类型。 如果一个枚举被声明为 "uint"、"long "或 "ulong",它应该被转换为该枚举的类型;例如,对于
enum StarsInMilkyWay:long {Sun = 1, V645Centauri = 2 .. Wolf424B = 2147483649};
你应该使用
long something = (long)StarsInMilkyWay.Wolf424B;
这比你想象的要简单--一个枚举已经是一个int。 它只是需要被提醒一下。
int y = (int)Question.Role;
Console.WriteLine(y); // prints 2