这里有很多关于将字符串转换为枚举值的问题.一般来说,答案看起来像
this question的答案:
StatusEnum MyStatus = (StatusEnum) Enum.Parse( typeof(StatusEnum),"Active",true );
虽然这是一个完全合理的答案,您可以编写一个简化调用的方法,但它并不回答为什么Enum.Parse()返回一个对象而不是适当的枚举值的问题.为什么我必须将其转换为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”);.