C# - 将enum类型映射到字符串上
来源:互联网 发布:liststring 排序 java 编辑:程序博客网 时间:2024/06/05 05:19
有以下一个枚举类型:
public enum MyColors { [StringValue("red")] red, [StringValue("blue")] blue, [StringValue("green")] green, [StringValue("yellow")] yellow, [StringValue("block")] block }
我想输出MyColors.red是“red”。
定义StringValue为一个类,继承自System.Attribute
public class StringValue : System.Attribute { private string _value; public StringValue (string value) { _value = value; } public string Value { get { return _value; } } }
定义静态类StringEnum
public static class StringEnum { public static string GetStringValue (System.Enum value) { string output = null; System.Type type = value.GetType (); System.Reflection.FieldInfo fi = type.GetField (value.ToString ()); StringValue[] attrs = fi.GetCustomAttributes (typeof(StringValue), false) as StringValue[]; if (attrs.Length > 0) { output = attrs [0].Value; } return output; } }
使用StringEnum.GetStringValue(System.Enum value)方法调用,
写一段测试代码:
public class EmptyClass { static void Main(string[] args) { Console.WriteLine (StringEnum.GetStringValue (MyColors.red)); Console.WriteLine (StringEnum.GetStringValue (MyColors.blue)); Console.WriteLine (StringEnum.GetStringValue (MyColors.green)); Console.WriteLine (StringEnum.GetStringValue (MyColors.yellow)); Console.WriteLine (StringEnum.GetStringValue (MyColors.block)); } }
输出结果是:
完美解决将enum类型映射到字符串上这个问题。
由于GetStringValue(System.Enum value)方法使用的是父类System.Enum,所有定义的Enum都可以同时调用这个方法,实现代码共享,不用写多个GetStringValue方法了。
0 0
- C# - 将enum类型映射到字符串上
- C#将Enum枚举映射到文本字符串
- enum类型映射到hbm.xml配置文件
- enum类型映射到hbm.xml配置文件
- Hibernate将Enum枚举类型映射为Int类型
- Hibernate将Enum枚举类型映射为Int类型
- Hibernate将Enum枚举类型映射为Int类型(补充VARCHAR类型配置)
- 将字符串型转化为(Enum)枚举类型
- 将数字映射到字母上
- 将虚拟按钮映射到屏幕上
- hibernate_映射枚举类型(Enum)
- C#枚举类型enum
- C#枚举类型enum
- C#枚举类型enum
- c# 枚举 enum 类型
- C#枚举类型-Enum
- C# 枚举类型转换字符串 Enum to string,枚举转换为下拉菜单 Enum DropDownList
- Hibernate 映射枚举(Enum) 类型的属性
- 解析Json 和 XML 的学习
- 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
- LinearLayout布局
- Linux一键安装web环境(阿里云服务器)
- Review-java基础-反射机制(Reflect)
- C# - 将enum类型映射到字符串上
- Java设计模式之一
- 8月小结8/29--9/4Linq_回调产生GC*待解决
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
- 漏洞修复
- 对比一下PHP和JAVA开发网站的优劣
- 深入理解JavaScript系列
- android源码下载,编译及编译时遇到的错误整理
- UITableView归整