zoukankan      html  css  js  c++  java
  • C#获取枚举描述代码

    public class MusterEnum
        {
            /// 获取枚举的描述信息
            /// </summary>
            /// <param name="e">传入枚举对象</param>
            /// <returns>得到对应描述信息</returns>
            public String GetEnumDesc(Enum e)
            {
                FieldInfo EnumInfo = e.GetType().GetField(e.ToString());
                if (EnumInfo == null)
                {
                    return "";
                }
                DescriptionAttribute[] EnumAttributes
                    = (DescriptionAttribute[])EnumInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
                if (EnumAttributes.Length > 0)
                {
                    return EnumAttributes[0].Description;
                }
                return e.ToString();
            }
    
            /// <summary>
            /// 将含有描述信息的枚举绑定到列表控件中
            /// </summary>
            /// <param name="listControl"></param>
            /// <param name="enumType"></param>
            private Dictionary<string, string> BindDesEnumToListControl(System.Type enumType)
            {
                Dictionary<string, string> dic = new Dictionary<string, string>();
                foreach (object enumValue in Enum.GetValues(enumType))
                {
                    Enum e = (Enum)enumValue;
                    dic.Add(((int)enumValue).ToString(), GetEnumDesc(e));
                }
                return dic;
            }
    }

    还有一个是根据传入的枚举的数字索引直接获取

            public static string GetEnumDesc<T>(Object obj)
            {
                obj = (T)obj;
                if (obj == null) throw new ArgumentNullException("参数不能为null");
                if (!obj.GetType().IsEnum) throw new Exception("参数类型不正确");
                FieldInfo fieldinfo = obj.GetType().GetField(obj.ToString());
    
                string str = string.Empty;
                Object[] objs = fieldinfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
                if (objs != null && objs.Length != 0)
                {
                    DescriptionAttribute des = (DescriptionAttribute)objs[0];
                    str = des.Description;
                }
                return str;
            }
  • 相关阅读:
    浅谈JS的数组遍历方法
    浅谈JavaScript函数重载
    随机数的组合问题(JavaScript描述)
    如何使用百度bae部署web项目
    阿里前端笔试总结
    有趣的JavaScript隐式类型转换
    CSS如何实现”右部宽度固定,左部自适应“的布局
    Nor Flash的理论性能
    python argparse:命令行参数解析详解
    rwcheck:为嵌入式设备设计的读写压测工具
  • 原文地址:https://www.cnblogs.com/subendong/p/2879636.html
Copyright © 2011-2022 走看看