一尘不染

从 C# 中的枚举中获取 int 值

c#

我有一个名为Questions(复数)的课程。在这个类中有一个名为Question(singular) 的枚举,它看起来像这样。

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

Questions类中,我有一个get(int foo)返回Questions对象的函数foo。有没有一种简单的方法可以从枚举中获取整数值,以便我可以做这样的事情Questions.Get(Question.Role)


阅读 204

收藏
2022-02-11

共1个答案

一尘不染

只需投射枚举,例如

int something = (int) Question.Role;

以上将适用于您在野外看到的绝大多数枚举,因为枚举的默认基础类型是int.

枚举可以有不同的底层类型。如果枚举被声明为uintlongulong,则应将其强制转换为枚举的类型;例如对于

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

你应该使用

long something = (long)StarsInMilkyWay.Wolf424B;
2022-02-11