首先建立一个枚举:
复制代码代码如下:
/// <summary> /// 颜色 /// </summary> public enum ColorType { /// <summary> /// 红色 /// </summary> Red,
/// <summary>
/// 蓝色 /// </summary> Bule,/// <summary>
/// 绿色 /// </summary> Green }获得枚举数值:
复制代码代码如下:
int code = ColorType.Red.GetHashCode();
有数值获得枚举名称:
复制代码代码如下:
string name1=ColorType.Red.ToString(); //或者 string name2= Enum.Parse(typeof(ColorType), code.ToString()).ToString();
以上获得的枚举名称,是英文,如果要获得相应的中文解释,可以利用Attribute来实现,代码如下:
复制代码代码如下:
/// <summary> /// 颜色 /// </summary> public enum ColorType { /// <summary> /// 红色 /// </summary> [Description("红色")] Red,
/// <summary>
/// 蓝色 /// </summary> [Description("蓝色")] Bule,/// <summary>
/// 绿色 /// </summary> [Description("绿色")] Green }在枚举中,加入Description,然后建立一个类,有如下方法用来把枚举转换成对应的中文解释:
复制代码代码如下:
public static class EnumDemo { private static string GetName(System.Type t, object v) { try { return Enum.GetName(t, v); } catch { return "UNKNOWN"; } }
/// <summary>
/// 返回指定枚举类型的指定值的描述 /// </summary> /// <param name="t">枚举类型</param> /// <param name="v">枚举值</param> /// <returns></returns> public static string GetDescription(System.Type t, object v) { try { FieldInfo oFieldInfo = t.GetField(GetName(t, v)); DescriptionAttribute[] attributes = (DescriptionAttribute[])oFieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false); return (attributes.Length > 0) ? attributes[0].Description : GetName(t, v); } catch { return "UNKNOWN"; } } }调用方法如下:
复制代码代码如下:
string name3=EnumDemo.GetDescription(typeof(ColorType), ColorType.Red)