我有一门课叫问题(复数)。在这个类中有一个名为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 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
更多信息可以在这里找到。
我能想到的最简单的解决方案是重载Get(int)方法,如下所示:
[modifiers] Questions Get(Question q)
{
return Get((int)q);
}
其中[modifiers]通常可以与Get(int)方法相同。如果无法编辑Questions类或出于某种原因不想编辑,可以通过编写扩展来重载该方法:
public static class Extensions
{
public static Questions Get(this Questions qs, Question q)
{
return qs.Get((int)q);
}
}