C#枚举数值与名称的转换
2012-01-15 21:20
211 查看
在应用枚举的时候,时常需要将枚举和数值相互转换的情况。有时候还需要转换成相应的中文。下面介绍一种方法。
首先建立一个枚举:
获得枚举数值:
有数值获得枚举名称:
以上获得的枚举名称,是英文,如果要获得相应的中文解释,可以利用Attribute来实现,代码如下:
在枚举中,加入Description,然后建立一个类,有如下方法用来把枚举转换成对应的中文解释:
调用方法如下:
name3得到的就是“红色”。
首先建立一个枚举:
/// <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)
name3得到的就是“红色”。
相关文章推荐
- C#枚举数值与名称的转换
- C#枚举数值与名称的转换实例分享
- 枚举,名称和常数值之间的转换
- [c#]遍历枚举中的项目名称和数值
- c#新手入门级代码分享 枚举类型。输出数值所对应的变量名称
- C#新手入门代码 枚举类型,输出数值,输出名称
- c#之枚举类型和int以及string类型的转换
- C#枚举类型、枚举类型与其他类型转换、结构类型、数组类型
- C# 枚举、字符串、值的相互转换
- C# Enum,Int,String的互相转换 枚举转换
- C#根据枚举的key值获取枚举name名称
- C# 枚举、字符串、值的相互转换
- java 枚举和数值的相互转换
- c# 运行时替换某文件源代码(将XML 转换成 某个枚举并写入源文件)
- 黑马程序员之C#学习笔记:枚举以及将字符串转换为枚举学习心得
- c#枚举类型的内容全部获取和字符串转换为枚举类型的方法
- C# Enum,Int,String的互相转换 枚举转换
- 枚举也能直接转换为对应的数值输出
- C# 给枚举定义DescriptionAttribute,把枚举转换为键值对
- C# 枚举、字符串、值的相互转换