利用DescriptionAttribute实现枚举字符串
2014-01-24 11:00 假面Wilson 阅读(300) 评论(0) 编辑 收藏 举报我们知道定义枚举时是不允许带空格等符号的,这样就不利于进行字符串对比。当然可以通过给枚举添加DescriptionAttribute,然后通过fieldinfo读取DescriptionAttribute来获取字符串。
以下是例子
先定义枚举
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /// <summary> /// Campaign Mode /// </summary> public enum CampaignModeEnum { /// <summary> /// Inbound /// </summary> [DescriptionAttribute( "Inbound" )] Inbound, /// <summary> /// Outbound Preview /// </summary> [DescriptionAttribute( "Outbound Preview" )] Outbound_Preview, /// <summary> /// Outbound Predictive /// </summary> [DescriptionAttribute( "Outbound Predictive" )] Outbound_Predictive } |
编写获取DescriptionAttribute的类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public static class EnumMethod { public static string StringValue(Enum value) { FieldInfo fi = value.GetType().GetField(value.ToString()); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes( typeof (DescriptionAttribute), false ); if (attributes.Length > 0) { return attributes[0].Description; } else { return value.ToString(); } } } |
这样调用就可以啦!
EnumMethod.StringValue(CampaignModeEnum.Outbound_Predictive);
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步