• 获取枚举 描述


    枚举的定义在程序开发中十分方便 .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);

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

  • 相关阅读:
    flex布局下,将内容限定在容器内(如内容超出以省略号显示)的实现方案
    模板引擎——jquery.tmpl.js
    CSS布局——display: flex
    js实现实时显示当前时间的方法
    PS——规定尺寸的证件照的制作
    辅助开发——ps一键切图篇
    TCP的三次握手和四次挥手
    HTTP 协议基础入门篇总结
    频率组件
    视图组件
  • 原文地址:https://www.cnblogs.com/widows/p/11226612.html
Copyright © 2020-2023  润新知