zoukankan      html  css  js  c++  java
  • 获取枚举 描述

    枚举的定义在程序开发中十分方便 .net 支持枚举使用中文 比如:

    public enum EnumIsPayType
    {   免费
    = 1,   付费 = 2 }

    如果需要返回汉字的时候 

    public Int32?PayType{ get; set; } 

    public string E_
    PayType
    { 

      get { if (ScaleType.HasValue)
      {
        
    return Enum.GetName(typeof(
    EnumIsPayType),PayType);
      } 

      return string.Empty; }
    }

    但是,在比较规范的枚举使用中,是不能直接使用中文的,只能使用枚举的描述。

    public enum EnumIsPayType
    {
         [Description("免费")]      
        free= 1,
         [Description("付费")]      
        pay= 2,
    }

    此时使用上面的方法将返回 free或pay 与需求不符

    由此我们需要获取枚举的描述

    首先定义一个公共的获取枚举描述的泛型方法

    /// <summary>
            /// 获取枚举描述
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="value"></param>
            /// <returns></returns>
            public static string GetDescription<T>(T value)
            {
                string str = value.GetType()?.GetMember(value.ToString())?.FirstOrDefault()?.GetCustomAttribute<DescriptionAttribute>()?.Description;
                return str ?? string.Empty;
            }

    记住 申明枚举的时候一定不能忘了 

    [Description(" ")]      
    这个标签
    然后我们调用这个方法
    string type = GetDescription(EnumIsPayType.pay);

    则可以获取到需要返回的枚举描述。

  • 相关阅读:
    gorm使用小结
    golang 输入输出
    nginx 命令和配置
    设计模式
    并发
    Java教程
    Spring实战
    第12章 高级数据结构及其实现
    第10章 算法设计技巧
    第9章 图论算法
  • 原文地址:https://www.cnblogs.com/widows/p/11226612.html
Copyright © 2011-2022 走看看