问题描述
我有一个名为Questions
(复数)的课程.在这个类中有一个名为 Question
(单数)的枚举,看起来像这样.
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
}
在 Questions
类中,我有一个 get(int foo)
函数,该函数为该 foo返回一个
Questions
对象代码>.有没有一种简单的方法可以从枚举中获取整数值,以便我可以执行类似 Questions.Get(Question.Role)
的操作?
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 off the enum so I can do something like this Questions.Get(Question.Role)
?
推荐答案
只投枚举,例如
int something = (int) Question.Role;
上述方法适用于您在野外看到的绝大多数枚举,因为枚举的默认基础类型是 int
.
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
.
然而,正如 cecilphillip 指出的那样,枚举可以有不同的底层类型.如果枚举被声明为 uint
、long
或 ulong
,则应将其强制转换为枚举的类型;例如对于
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};
你应该使用
long something = (long)StarsInMilkyWay.Wolf424B;
这篇关于从 C# 中的枚举中获取 int 值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!