获取枚举 描述

Posted widows

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取枚举 描述相关的知识,希望对你有一定的参考价值。

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

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

以上是关于获取枚举 描述的主要内容,如果未能解决你的问题,请参考以下文章

.net工具类 获取枚举类型的描述

获取枚举 描述

.net工具类 获取枚举类型的描述

.net工具类 获取枚举类型的描述

C#根据描述获取枚举

获取枚举描述