枚举扩展方法获取枚举Description
Posted bindot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了枚举扩展方法获取枚举Description相关的知识,希望对你有一定的参考价值。
枚举扩展方法
1 /// <summary> 2 /// 扩展方法,获得枚举的Description 3 /// </summary> 4 /// <param name="value">枚举值</param> 5 /// <param name="nameInstend">当枚举没有定义DescriptionAttribute,是否用枚举名代替,默认使用</param> 6 /// <returns>枚举的Description</returns> 7 public static string GetDescription(this Enum value, bool nameInstend = true) 8 { 9 Type type = value.GetType(); 10 string name = Enum.GetName(type, value); 11 if (name==null) 12 { 13 return null; 14 } 15 FieldInfo field = type.GetField(name); 16 DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute; 17 if (attribute==null&&nameInstend==true) 18 { 19 return name; 20 } 21 return attribute==null? null :attribute.Description; 22 }
枚举类
1 public enum WeekDay 2 { 3 [Description("星期一")] 4 one=1, 5 [Description("星期二")] 6 two =2, 7 three=3, 8 four=4, 9 five=5, 10 six=6, 11 seven=7 12 13 }
测试
//枚举测试 WeekDay w1 = WeekDay.one; string strw1 = w1.GetDescription();// strw1= “星期一” WeekDay w3 = WeekDay.three; string strw2 = w3.GetDescription();// strw3=“three”
以上是关于枚举扩展方法获取枚举Description的主要内容,如果未能解决你的问题,请参考以下文章
C#枚举扩展方法,获取枚举值的描述值以及获取一个枚举类下面所有的元素