我有一门课叫问题(复数)。在这个类中有一个名为Question(单数)的枚举,看起来像这样。
public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6
}
在Questions类中,我有一个get(intfoo)函数,它为该foo返回Questions对象。有没有一种简单的方法可以从枚举中获取整数值,这样我就可以执行类似于Questions.get(Questions.Role)的操作?
例子:
public enum EmpNo
{
Raj = 1,
Rahul,
Priyanka
}
在后面的代码中获取枚举值:
int setempNo = (int)EmpNo.Raj; // This will give setempNo = 1
or
int setempNo = (int)EmpNo.Rahul; // This will give setempNo = 2
枚举将递增1,您可以设置起始值。如果不设置起始值,初始值将指定为0。
public enum Suit : int
{
Spades = 0,
Hearts = 1,
Clubs = 2,
Diamonds = 3
}
Console.WriteLine((int)(Suit)Enum.Parse(typeof(Suit), "Clubs"));
// From int
Console.WriteLine((Suit)1);
// From a number you can also
Console.WriteLine((Suit)Enum.ToObject(typeof(Suit), 1));
if (typeof(Suit).IsEnumDefined("Spades"))
{
var res = (int)(Suit)Enum.Parse(typeof(Suit), "Spades");
Console.Out.WriteLine("{0}", res);
}
你应该使用我们可以在任何其他语言中使用的类型铸造。
如果枚举是这样的-
public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6
}
你需要转换为int,然后这样做-
Question q = Question.Role;
.............
.............
int something = (int) q;
Re-
在C#中,有两种类型的铸件:
隐式转换(自动)-将较小的类型转换为较大的类型大小,如-
char->int->long->float->double
显式转换(手动)-将较大的类型转换为较小的类型,如-
double->float->long->int->char
更多信息可以在这里找到。