日期:2014-05-17  浏览次数:20855 次

求Enum状态传递后怎么赋值

public class EnumList
{
    /// <summary>
    /// 记录动作状态
    /// </summary>
    public enum RequestAction
    {
        reques = 0,
        edit = 1,
        dlete = 2
        //我还很多....
    }
}


在页面A:是参数传递比如action= (int)EnumList.RequestAction.edit;
实际就是传递action=1

在页面B:获取action的值转为int,得到1
那要将这个1转为EnumList.RequestAction类型,要怎么转啊?


EnumList.RequestAction newAcion = new EnumList.RequestAction();
        if(action==0)
        {
            newAcion = EnumList.RequestAction.reques ;
        }
        else if("如果动作种类很多"==true)
        {
            newAcion = "挂了" ;
        }
        else
        {
            newAcion = "死也要死得明白啊" ;
        }


我菜鸟,现在是这么丑的代码,有什么快速匹配的办法吗?

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

(int)newAcion = action;
要是能这样多好啊。。。

我这个例子该怎么转啊?

我看了你写的这个了,action可以直接传reques,edit, dlete 等等,然后直接
(EnumName)EnumName.Parse(typeof(EnumName),sString)
其中字符串sString,枚举EnumName,实现将sString类型转换成EnumName类型。
替换一下就可以了

参见Enum.Parse(Type, String)用法