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


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

    定义枚举熟悉,描述

        /// <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

  • 相关阅读:
    excel
    POJ 1149--PIGS
    A
    强大的sscanf
    hdu 5754 Life Winner Bo(威佐夫博弈)
    hdu 5723 Abandoned country(最小生成树,dfs)
    hdu 5734 Acperience
    The Monocycle,UVa 10047(状态记录广搜)
    Fire!(两次bfs)
    NP-Hard Problemd(二分图判定着色)
  • 原文地址:https://www.cnblogs.com/lhlong/p/10775523.html
Copyright © 2020-2023  润新知