C#获取枚举描述

来源:互联网 发布:矩阵数据分析法案例 编辑:程序博客网 时间:2024/06/13 22:45

本文参考地址:https://www.cnblogs.com/myyBlog/p/6738563.html


枚举类型在程序中必不可少,特别是在类型选择的地方;但是我们经常需要添加额外的中文对应选择,其实不如直接用描述属性

核心代码:



具体代码:

   public class EnumHelper
    {
        public static string GetEnumDescription(Enum type)
        {
            Type ty = type.GetType();
            MemberInfo[] memInfos = ty.GetMember(type.ToString());
            if(memInfos!=null&&memInfos.Length>0)
            {
                object[] objArr = memInfos[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
                if(objArr!=null&&objArr.Length>0)
                {
                    return (objArr[0] as DescriptionAttribute).Description;
                }
            }
            return type.ToString();
        }
    }


举例枚举:最后一个是我们常用的注释,我们常用的注释不能起到明显的作用,除了给编程人员显示含义


具体代码:

 public enum SeasonType
    {
        [Description("春天")]
        Spring=1,
        [Description("夏天")]
        Summer=2,
        [Description("秋天")]
        Antumn=3,
        [Description("冬天")]
        Winter=4,
        /// <summary>
        /// 未知
        /// </summary>
        UnKnown=5
    }

最终控制台调用:


具体代码:

 static void Main(string[] args)
        {
            List<SeasonType> list = new List<SeasonType>() { SeasonType.Spring, SeasonType.Summer, SeasonType.Antumn, SeasonType.Winter, SeasonType.UnKnown};
            foreach (var a in list)
            {
                Console.WriteLine(string.Format("{0}={1}",a.ToString(),(int)a));
                Console.WriteLine(EnumHelper.GetEnumDescription(a));
            }
            Console.ReadKey();
        }


最终运行结果:



原创粉丝点击