我有以下代码。
private Enum MyEnum
{
VALUE1=5, VALUE2=4, VALUE3=3, VALUE4=2, VALUE5=1
}
protected void Page_Load(object sender, EventArgs e)
{
Session["EnumValue"] = "VALUE1";
MyEnum test = (MyEnum) Session["EnumValue"];
}
在页面加载中,在转换后我得到变量'test'='VALUE2'的值。
我期待它得到test ='VALUE1'。代码
有什么问题吗?答案 0 :(得分:6)
你不能简单地将字符串值强制转换回Enum,你必须解析它:
MyEnum enumValue = (MyEnum) Enum.Parse(typeof(MyEnum), (string)Session["EnumValue"]);
答案 1 :(得分:2)
为什么使用字符串而不使用枚举?像:
private Enum MyEnum
{
VALUE1=5, VALUE2=4, VALUE3=3, VALUE4=2, VALUE5=1
}
protected void Page_Load(object sender, EventArgs e)
{
Session["EnumValue"] = MyEnum.VALUE1;
MyEnum test = (MyEnum) Session["EnumValue"];
}