zoukankan      html  css  js  c++  java
  • 利用DescriptionAttribute实现枚举字符串

    我们知道定义枚举时是不允许带空格等符号的,这样就不利于进行字符串对比。当然可以通过给枚举添加DescriptionAttribute,然后通过fieldinfo读取DescriptionAttribute来获取字符串。

    以下是例子

    先定义枚举

        /// <summary>
        /// Campaign Mode
        /// </summary>
        public enum CampaignModeEnum
        {
            /// <summary>
            /// Inbound
            /// </summary>
            [DescriptionAttribute("Inbound")]
            Inbound,
            /// <summary>
            /// Outbound Preview
            /// </summary>
            [DescriptionAttribute("Outbound Preview")]
            Outbound_Preview,
            /// <summary>
            /// Outbound Predictive
            /// </summary>
            [DescriptionAttribute("Outbound Predictive")]
            Outbound_Predictive
        }
    

    编写获取DescriptionAttribute的类

        public static class EnumMethod
        {
            public static string StringValue(Enum value)
            {
                FieldInfo fi = value.GetType().GetField(value.ToString());
                DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
                if (attributes.Length > 0)
                {
                    return attributes[0].Description;
                }
                else
                {
                    return value.ToString();
                }
            }
        }
    

      

    这样调用就可以啦!

    EnumMethod.StringValue(CampaignModeEnum.Outbound_Predictive);

      

  • 相关阅读:
    Filecoin:一种去中心化的存储网络(二)
    Filecoin:一种去中心化的存储网络(一)
    HTTP
    数据结构中的查找
    剑指offer-高质量的代码
    C++中STL容器的比较
    PBFT算法的相关问题
    springmvc最全约束
    springmvc入门(一)
    spring入门(一)
  • 原文地址:https://www.cnblogs.com/colder/p/3532135.html
Copyright © 2011-2022 走看看