示例:
class foo
{
byte val = 3;
string EnumName = "boo";
Enum boo : byte
{
coo = 1,
doo = 2,
hoo = 3
}
Enum boo2 : byte
{
eoo = 3,
goo = 8
}
}
我该怎么做:
Console.WriteLine((GetEnum(EnumName)value).ToString()); // GetEnum is not real
EnumName每次都会改变。
预期产出:
当枚举名称为boo时==“hoo”
当枚举名称为boo2 ==“eoo”
时编辑: 我打算用它来记录:
给boo2.goo的消息
给boo.coo的消息
发送给boo.doo的消息
答案 0 :(得分:1)
使用(EnumType) Enum.Parse("boo", typeof(EnumType));
答案 1 :(得分:0)
如果您想获得基于字符串的类型,您可以在整个应用程序域中搜索可用类型,并且可以检查类型是枚举还是名称套件。 拥有正确的类型后,您应该能够获得值/名称,无论您想要什么。 也许这个解决方案有点像锤子,但我认为它适合你的情况。 (我不知道你的应用程序是如何构建的。)
var domain = AppDomain.CurrentDomain;
var assemblies = domain.GetAssemblies();
foreach(var assembly in assemblies)
{
foreach(Type t in assembly.GetTypes())
{
string name = t.Name; // or t. Fullname if you know it
// you can also check if the type is an Enum, etc...
}
}