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

            /// <summary>
            /// 根据描述获取枚举值
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="description"></param>
            /// <returns></returns>
            public static T GetEnumByDescription<T>(string description) where T : Enum
            {
                System.Reflection.FieldInfo[] fields = typeof(T).GetFields();
                foreach (System.Reflection.FieldInfo field in fields)
                {
                    object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);    //获取描述属性
                    if (objs.Length > 0 && (objs[0] as DescriptionAttribute).Description == description)
                    {
                        return (T)field.GetValue(null);
                    }
                }
    
                throw new ArgumentException(string.Format("{0} 未能找到对应的枚举.", description), "Description");
            }

    根据描述获取枚举

    /// <summary>
            /// 根据枚举值,获取描述
            /// </summary>
            /// <param name="enumValue"></param>
            /// <returns></returns>
            public static string GetEnumDes(Enum enumValue)
            {
                string value = enumValue.ToString();
                FieldInfo field = enumValue.GetType().GetField(value);
                object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);    //获取描述属性
                if (objs == null || objs.Length == 0)    //当描述属性没有时,直接返回名称
                    return value;
                DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
                return descriptionAttribute.Description;
            }

    根据枚举返回描述

    namespace zxx
    {
        /// <summary>
        /// 订单类型
        /// </summary>
        public enum OrderType
        {
            /// <summary>
            /// 订金
            /// </summary>
            [Description("订金")]
            Pre,
            /// <summary>
            /// 学费
            /// </summary>
            [Description("学费")]
            TutionFee,
            /// <summary>
            /// 课程费差价
            /// </summary>
            [Description("课程费差价")]
            CourseFee,
            /// <summary>
            /// 附加服务
            /// </summary>
            [Description("附加服务")]
            Addtional,
            /// <summary>
            /// 成绩单
            /// </summary>
            [Description("成绩单")]
            Transcript,
        }
    }
  • 相关阅读:
    Android的FileOutputStream中向文本文件中写入换行符
    简单又好看的按钮,扁平化按钮。
    android常见错误之 No resource found that matches the given name
    eclipse中Android模拟器,DDMS看不到设备
    Android软件开发之盘点所有Dialog对话框大合集
    Android软件开发之TextView详解
    frameset网页彻底退出或跳转(转)
    .Net 如何限制用户登录(转)
    将上传图片文件转成二进制流再存储
    数据库链接字符串自动生成
  • 原文地址:https://www.cnblogs.com/gzbit-zxx/p/13877065.html
Copyright © 2011-2022 走看看