zoukankan      html  css  js  c++  java
  • 获取枚举类型的描述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 "";
            }
        }
    }
  • 相关阅读:
    Apache Log4j 学习笔记
    关于BindingResult
    Java源码分析:深入探讨Iterator模式
    hibernate的ID生成策略(annotation方式@GeneratedValue)
    HTML5本地存储不完全指南
    pageX,clientX,offsetX,layerX的那些事
    getHibernateTemplate().execute(new HibernateCallback())方法
    jQuery.extend 与 jQuery.fn.extend 的区别
    16个优秀的JavaScript教程和工具推荐
    Spring 2.5:Spring MVC中的新特性
  • 原文地址:https://www.cnblogs.com/niunan/p/6073223.html
Copyright © 2011-2022 走看看