如何在 C# 中为变量分配不同的枚举
本文关键字:分配 枚举 变量 | 更新日期: 2023-09-27 17:50:55
我正在尝试做这样的事情。
enum Birds {
Crow,
Sparrow,
Hawk
}
enum Bugs {
Ant,
Spider,
Scorpion
}
if (featherless == true) {
var beast = Bugs;
} else {
var beast = Birds;
}
string a = (beast)2.ToString();
我有五行代码适用于提供的枚举。 我无法想象我必须复制这五行。像上面这样的东西必须能够使用... 上面的结构当然会导致 beast 超出范围,我无法将 var 作为参数传递。 我知道这是一个令人头疼的时刻,但我已经搜索过,找不到类似的问题。
var beastType = featherless ? typeof(Bugs) : typeof(Birds);
var a = Enum.GetValues(beastType).GetValue(2).ToString();
如果featherless
为真,则将分配Hawk
,如果为假,则将分配Scorpion
。
编辑 0如果您只需要名称,也许这将是一个更好的解决方案:
var beastType = featherless ? typeof(Bugs) : typeof(Birds);
var a = Enum.GetName(beastType, 2);
编辑 1如果您需要一个对象进行进一步的操作,也许您可以尝试这样做:
var beastType = featherless ? typeof(Bugs) : typeof(Birds);
var beast = Enum.ToObject(beastType, 2);
var a = beast.ToString();