Кастинг в Enum - PullRequest
       35

Кастинг в Enum

0 голосов
/ 16 июня 2009

У меня есть следующий код.

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'. Что-то не так с кодом

Ответы [ 2 ]

6 голосов
/ 16 июня 2009

Вы не можете просто привести строковое значение обратно в Enum, вам нужно его проанализировать:

MyEnum enumValue = (MyEnum) Enum.Parse(typeof(MyEnum), (string)Session["EnumValue"]);
2 голосов
/ 16 июня 2009

Почему вы работаете со строкой, а не с перечислением? Как:

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"];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...