您的位置:首页 > 编程语言 > C#

C#获取枚举描述

2017-12-19 13:43 357 查看
本文参考地址: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();

        }

最终运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: