获取枚举 描述

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

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

原文地址:https://www.cnblogs.com/widows/p/11226612.html

时间: 2024-11-01 20:30:54

获取枚举 描述的相关文章

获取根据枚举名称获取枚举描述

/// <summary> /// 获取根据枚举名称获取枚举描述 /// </summary> /// <typeparam name="T">枚举类型</typeparam> /// <param name="enumName">枚举名称</param> /// <returns></returns> public static string GetEnumDescri

C#获取枚举描述代码

public class MusterEnum { /// 获取枚举的描述信息 /// </summary> /// <param name="e">传入枚举对象</param> /// <returns>得到对应描述信息</returns> public String GetEnumDesc(Enum e) { FieldInfo EnumInfo = e.GetType().GetField(e.ToString());

C#获取枚举描述文本

定义一个表示方向的枚举: public enum Position { [Description("上")] Up, [Description("下")] Down, [Description("左")] Left, [Description("右")] Right } 获取枚举的描述: public static string GetDescription<TEnum>(TEnum @enum) { FieldI

获取枚举描述

/// <summary> /// 枚举测试 /// </summary> public enum TestTypeEnum { [Description("书籍")]Book = 1, [Description("手机")]Phone = 2 } public static class EnumHelp { public static string GetDescription(this Enum value) { Type enumTyp

C#获取枚举描述

using System; using System.Collections.Generic; using System.ComponentModel; using System.Reflection; using System.Text; namespace JFJT.GemStockpiles.Helpers { public static class EnumHelper { /// <summary> /// 根据值得到中文备注 /// </summary> /// <

.NET获取枚举DescriptionAttribute描述信息性能改进的多种方法

一. DescriptionAttribute的普通使用方式 1.1 使用示例 DescriptionAttribute特性可以用到很多地方,比较常见的就是枚举,通过获取枚举上定义的描述信息在UI上显示,一个简单的枚举定义: public enum EnumGender { None, [System.ComponentModel.Description("男")] Male, [System.ComponentModel.Description("女")] Fem

C#枚举扩展方法,获取枚举值的描述值以及获取一个枚举类下面所有的元素

/// <summary> /// 枚举扩展方法 /// </summary> public static class EnumExtension { private static Dictionary<string, Dictionary<string, string>> _enumCache; /// <summary> /// 缓存 /// </summary> private static Dictionary<stri

C# 获取枚举的 键名称,值 和描述 遍历枚举

C# Enum  枚举的操作.  键名称,值 和描述  和 遍历枚举 /// <summary> /// 促销 /// </summary> public enum cxsd { [Description("推荐")] tj = 2, [Description("置顶")] zd = 4, [Description("热卖")] rm = 8 } //获取 枚举 值 Array rolearry = Enum.GetVal

C#通过反射进行枚举描述相关操作

C#可以通过反射,来获取枚举的描述信息或通过描述信息获取到指定类型的枚举 1 /// <summary> 2 /// 获取枚举描述 3 /// </summary> 4 /// <param name="enumName"></param> 5 /// <returns></returns> 6 public static string GetDescription(this Enum enumName) 7 {