Jar*_*cha 11 c# reflection enums
我有一个问题是如何在运行时创建一个枚举实例,我有枚举的System.Type并检查过BaseType是System.Enum,我的值是一个匹配神秘项目的int值枚举.
到目前为止我的代码只是上面描述的逻辑,如下所示.
if (Type.GetType(type) != null)
{
if (Type.GetType(type).BaseType.ToString() == "System.Enum")
{
return ???;
}
}
Run Code Online (Sandbox Code Playgroud)
在过去使用Enums时,我总是在代码时间知道我想要解析的枚举,但在这种情况下我很困惑,并且以谷歌友好的方式表达我的问题......我通常会做类似的事情
(SomeEnumType)int
Run Code Online (Sandbox Code Playgroud)
但由于我不知道代码时的EnumType如何才能实现同样的目的呢?
Dan*_*Dan 15
ToObject在Enum课堂上使用该方法:
var enumValue = Enum.ToObject(type, value);
Run Code Online (Sandbox Code Playgroud)
或者像您提供的代码:
if (Type.GetType(type) != null)
{
var enumType = Type.GetType(type);
if (enumType.IsEnum)
{
return Enum.ToObject(enumType, value);
}
}
Run Code Online (Sandbox Code Playgroud)