铸造到Enum

Ash*_*hok 0 enums casting

我有以下代码.

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"];
}
Run Code Online (Sandbox Code Playgroud)

在页面加载中,在转换后我具有变量'test'='VALUE2'的值.

我期待它得到test ='VALUE1'.代码有什么问题吗?

Cᴏʀ*_*ᴏʀʏ 6

你不能简单地将字符串值转换回Enum,你必须解析它:

MyEnum enumValue = (MyEnum) Enum.Parse(typeof(MyEnum), (string)Session["EnumValue"]);
Run Code Online (Sandbox Code Playgroud)