获取枚举类型的描述description
Posted 牛腩的编程不归路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取枚举类型的描述description相关的知识,希望对你有一定的参考价值。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace candel { class Program { static void Main(string[] args) { int x = (int)OrderType.WaitConfirm; string str = Util.GetEnumDesc(typeof(OrderType), x); Console.WriteLine(str); Order o = new Order() { Id = 1, Type = (int)OrderType.Complete }; string str2 = (typeof(OrderType)).GetEnumDesc(o.Type); Console.WriteLine(str2); Console.Read(); } } public class Order { public int Id { set; get; } public int Type { set; get; } } public enum OrderType { /// <summary> /// 等待用户付款 /// </summary> [Description("等待用户付款")] WaitPay = 0, /// <summary> /// 等待商家发货 /// </summary> [Description("等待商家发货")] WaitSend = 1, /// <summary> /// 等待用户确认收货 /// </summary> [Description("等待用户确认收货")] WaitConfirm = 2, /// <summary> /// 订单完成 /// </summary> [Description("订单完成")] Complete = 3 } public static class Util { /// <summary> /// 根据值得到中文备注 /// </summary> /// <param name="e"></param> /// <param name="value"></param> /// <returns></returns> public static String GetEnumDesc(this Type e, int? value) { FieldInfo[] fields = e.GetFields(); for (int i = 1, count = fields.Length; i < count; i++) { if ((int)System.Enum.Parse(e, fields[i].Name) == value) { DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[])fields[i]. GetCustomAttributes(typeof(DescriptionAttribute), false); if (EnumAttributes.Length > 0) { return EnumAttributes[0].Description; } } } return ""; } } }
以上是关于获取枚举类型的描述description的主要内容,如果未能解决你的问题,请参考以下文章