2009-06-16 118 views
0

我有以下代码。铸造枚举

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

这是什么语言? – 2009-06-16 12:23:56

+0

这是C#/ ASP.NET – 2009-06-16 13:34:20

回答

6

你不能简单地把字符串值回枚举,你必须分析它:

MyEnum enumValue = (MyEnum) Enum.Parse(typeof(MyEnum), (string)Session["EnumValue"]); 
+0

好的。该代码没有显示任何错误。这是正常的行为吗? – Ashok 2009-06-16 12:33:32

2

你为什么用字符串工作的不枚举? Like:

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"]; 
}