枚举里面怎样定义实现如下效果;1、public enum FileOperate
    {
        Upload = 0,//上传
        DownLoad = 1,//下载
        Query = 2//搜索
    }
2、int x = ((int)FileOperate.DownLoad).ToString();3、int x = FileOperate.DownLoad.ToInt();怎样才能用第3句的 FileOperate.DownLoad.ToInt(); 的样子实现第2句的功能,像 .ToString("yyyyMMdd"); 一样就直接转换格式了了。

解决方案 »

  1.   

    public enum FileOperate
        {
            Upload = 0,//上传
            DownLoad = 1,//下载
            Query = 2//搜索
        }
     FileOperate f = FileOperate.Upload
     IConvertible ic = f as IConvertible;
      int a =  ic.ToInt32()
      

  2.   

    sorry
    FileOperate f = FileOperate.Upload;
    int n = Convert.ToInt32(f);
      

  3.   

    不要用enum这个关键词来声明变量,用Enum类来声明,Enum类里就有ToString这个方法,用法参见msdn
      

  4.   

    第一种方法改成这样
    public enum FileOperate
        {
            Upload = 0,//上传
            DownLoad = 1,//下载
            Query = 2//搜索
        }
     FileOperate f = FileOperate.Upload
    Enum eo = f as Enum;
    IConvertible ic = eo as IConvertible;
    int n = ic.ToInt32( new System.Globalization.NumberFormatInfo() );
      

  5.   

    TO:2、int x = ((int)FileOperate.DownLoad).ToString();可以这样吗?应该这样吧..int x=(int)FileOperate.DownLoad;
      

  6.   

    TO:怎样才能用第3句的 FileOperate.DownLoad.ToInt(); 的样子实现第2句的功能可以参考hdt(倦怠) ...但是如果是想转成整型值,直接显示转换,即(int)FileOperate.DownLoad)效率应该是最高的..Convert.ToInt32(FileOperate.DownLoad)效率次之,用IConvertible再次之..
      

  7.   

    Sorry,第2、3句应该是 
    2、string x = ((int)FileOperate.DownLoad).ToString();3、string x = FileOperate.DownLoad.ToString();
      

  8.   

    抱歉,是我没有说清楚,结果应该转换成 String而不是Int,参考 tjvictor(下一站----星星) ( )的说法,写成下面的样子即可:
    FileOperate.DownLoad.ToString("D");