这里有很多关于将字符串转换为枚举值的问题。一般来说,答案看起来像这个问题的答案:
StatusEnum MyStatus = (StatusEnum) Enum.Parse( typeof(StatusEnum), "Active", true );
虽然这是一个完全合理的答案,并且您可以编写一个方法来简化调用,但它不能回答为什么Enum.Parse() 返回 anobject
而不是适当的枚举值的问题。为什么我必须将其转换为StatusEnum
?
编辑:
基本上,问题是为什么像这样的函数不是 Enum 类的一部分?
public static T Parse<T>(string value) where T: struct
{
return (T)Enum.Parse(typeof (T), value);
}
此功能运行良好,完全符合您的预期。 StatusEnum e = Enum.Parse<StatusEnum>("Active");
.