//枚举
public enum levels
{
  l1=1,
  l2=2,
  l3=3,
  l4=4
}//根据整型l判断并显示
int? l; //一个从数据库中读取的值
switch (l)
{
  case levels.l1:
    //显示“L1”
    break;
  case levels.l2:
    //显示“L2”
    break;
  ...
  default:
    break;
}结果出现以下错误:
Cannot implicitly convert type 'levels' to 'int'. An explicit conversion exists (are you missing a cast?)请问:case levels.l1应该怎么写?即:枚举型如何转化为整型?前提:l变量的整型类型不能改变?
谢谢,并祝大家春节愉快。

解决方案 »

  1.   

      int? l = 2;
      string  str = ((levels)l).ToString();
      

  2.   

    Int-->Enum
    举例:enum Colors { Red, Green, Blue, Yellow };
    1)可以强制转换将整型转换成枚举类型。
    例如:Colors color = (Colors)2 ,那么color即为Colors.Blue
    (2)利用Enum的静态方法ToObject。
    public static Object ToObject(Type enumType,int value)
    例如:Colors color = (Colors)Enum.ToObject(typeof(Colors), 2),那么color即为Colors.Blue