zoukankan      html  css  js  c++  java
  • 枚举定义,获取枚举的描述

    枚举定义,获取枚举的描述

    定义枚举熟悉,描述

        /// <summary>
        /// 枚举注释的自定义属性类
        /// </summary>
        public class EnumDescriptionAttribute : Attribute
        {
            private string m_strDescription;
            public EnumDescriptionAttribute(string strPrinterName)
            {
                m_strDescription = strPrinterName;
            }
    
            public string Description
            {
                get { return m_strDescription; }
            }
        } 
    

      

    定义枚举

        /// <summary>
        /// 日志登记区分
        /// </summary>
        public enum LogLevel
        {
            /// <summary>
            /// 默认
            /// </summary>
            [EnumDescription("正常")]
            Default = 0,
            /// <summary>
            /// 提醒
            /// </summary>
            [EnumDescription("提醒")]
            Remind = 1,
            /// <summary>
            /// 崩溃
            /// </summary>
            [EnumDescription("崩溃")]
            collapse = 2
        }

    获取枚举的描述

            /// <summary>
            /// 获取枚举的描述信息
            /// </summary>
            /// <typeparam name="T">枚举类型</typeparam>
            /// <param name="enums">枚举</param>
            /// <returns>枚举的描述,不存在则返回枚举的值</returns>
            public string GetEnumDescription<T>(object enums)
            {
    
                string RtnMsg = string.Empty;
                Dictionary<string, int> enumDic = new Dictionary<string, int>();
                Type t = typeof(T);
                Array arrays = Enum.GetValues(t);
                for (int i = 0; i < arrays.LongLength; i++)
                {
                    T test = (T)arrays.GetValue(i);
    
                    if (test.ToString() == enums.ToString())
                    {
                        try
                        {
                            FieldInfo fieldInfo = test.GetType().GetField(test.ToString());
                            object[] attribArray = fieldInfo.GetCustomAttributes(false);
                            EnumDescriptionAttribute attrib = (EnumDescriptionAttribute)attribArray[0];
                            enumDic.Add(attrib.Description, DataConvert.GetValInt(test));
    
                            RtnMsg= attrib.Description;
                        }
                        catch (Exception)
                        {
                            RtnMsg = test.ToString();
                        }
                    }
                }
    
    
                return RtnMsg;
            }
    

      

    1087814

  • 相关阅读:
    作用域 + this指向 的一道没面试题
    找出数组中最大的值
    统计数组中每个值出现的次数, 统计对象中每个字符出现的次数
    uniapp在h5 和 APP 端兼容性 bug 解决方案
    数组去重的常用方法,利用Promise实现函数按序执行
    momentjs实现距离当前时长并且回现中文效果
    SQL server 上机练习题
    JS 9
    JS 8
    JS 7
  • 原文地址:https://www.cnblogs.com/lhlong/p/10775523.html
Copyright © 2011-2022 走看看