gpt4 book ai didi

c# - 在 C# 中使用反射创建具有字符串值的未知枚举实例

转载 作者:可可西里 更新时间:2023-11-01 08:42:01 57 4
gpt4 key购买 nike

当我在运行时拥有枚举的 System.Type 并检查了 BaseType 是否为 System.Enum 时,我在计算如何准确创建枚举实例时遇到了问题,我的值是一个与项目匹配的 int 值在神秘的枚举中。

到目前为止,我的代码只是上面描述的逻辑,如下所示。

        if (Type.GetType(type) != null)
{
if (Type.GetType(type).BaseType.ToString() == "System.Enum")
{
return ???;
}
}

在过去使用枚举时,我总是在代码时知道我正在尝试解析哪个枚举,但在这种情况下我很困惑,并且运气不好以谷歌友好的方式阐明我的问题......我通常会这样做像

(SomeEnumType)int

但由于我在代码时不知道 EnumType,我该如何实现同样的事情?

最佳答案

使用 ToObject Enum 类上的方法:

var enumValue = Enum.ToObject(type, value);

或者喜欢你提供的代码:

if (Type.GetType(type) != null)
{
var enumType = Type.GetType(type);
if (enumType.IsEnum)
{
return Enum.ToObject(enumType, value);
}
}

关于c# - 在 C# 中使用反射创建具有字符串值的未知枚举实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855881/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com