`
niunan
  • 浏览: 719100 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

获取枚举类型的描述description

 
阅读更多

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace candel
{
    class Program
    {
        static void Main(string args)
        {
            int x = (int)OrderType.WaitConfirm;
            string str = Util.GetEnumDesc(typeof(OrderType), x);
            Console.WriteLine(str);

            Order o = new Order() { Id = 1, Type = (int)OrderType.Complete };
            string str2 = (typeof(OrderType)).GetEnumDesc(o.Type);
            Console.WriteLine(str2);

            Console.Read();
        }


    }

    public class Order
    {
        public int Id { set; get; }
        public int Type { set; get; }
    }


    public enum OrderType
    {
        /// <summary>
        /// 等待用户付款
        /// </summary>
       [ Description("等待用户付款")]
        WaitPay = 0,
        /// <summary>
        /// 等待商家发货
        /// </summary>
      【  Description("等待商家发货")】
        WaitSend = 1,
        /// <summary>
        /// 等待用户确认收货
        /// </summary>
       [ Description("等待用户确认收货")]
        WaitConfirm = 2,
        /// <summary>
        /// 订单完成
        /// </summary>
        [Description("订单完成")]
        Complete = 3
    }


    public static class Util
    {
        /// <summary>
        /// 根据值得到中文备注
        /// </summary>
        /// <param name="e"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static String GetEnumDesc(this Type e, int? value)
        {
            FieldInfo fields = e.GetFields();
            for (int i = 1, count = fields.Length; i < count; i++)
            {
                if ((int)System.Enum.Parse(e, fieldsi.Name) == value)
                {
                    DescriptionAttribute EnumAttributes = (DescriptionAttribute)fieldsi.
                GetCustomAttributes(typeof(DescriptionAttribute), false);
                    if (EnumAttributes.Length > 0)
                    {
                        return EnumAttributes0.Description;
                    }
                }
            }
            return "";
        }
    }
}

 

分享到:
评论

相关推荐

    C#如何获取枚举的描述属性详解

    通过反射,我们能获取到枚举类型的描述属性。 首先我们需要给枚举类型添加描述属性(属性都没有是不可能取到的),[Description]就是描述属性,使用这个属性,我们需要添加 using System.ComponentModel 引用。 ...

    C#获取枚举Eumn的属性值,并绑定到控件

    在某些场景下,我们需要获取枚举的属性值,比如描述信息,以便更好地展示给用户。本文将详细介绍如何使用反射(Reflection)来实现这一功能,并将其绑定到UI控件上。 首先,我们来看一下如何定义一个带有描述属性的...

    C# 从枚举值获取对应的文本描述详解

    在C#编程中,枚举(Enum)是一种强大的工具...这种方法不仅适用于单个枚举类型,也可以应用于项目中的所有枚举类型,大大提高了代码的可读性和可维护性。希望这篇详解能帮助你理解和应用这一技巧,提高你的C#编程实践。

    C#如何给枚举类型增加一个描述特性详解

    C#如何给枚举类型增加一个描述特性详解 C#中,枚举类型是一种非常常用的类型,它可以使代码更易于维护、更清晰、更易于键入。但是,在输出枚举值时,我们通常需要将其转换为对应的汉语意思或其他语句,以便于理解和...

    C#中如何为枚举类型添加描述方法【小技巧】

    在本文中,我们探讨了如何使用DescriptionAttribute为枚举类型添加描述,以及如何通过反射编写一个通用的扩展方法来获取枚举值的描述。这样,我们不仅可以解决枚举值与显示值分离的问题,还能避免在多个枚举类型中...

    PropertyGrid中的枚举显示为中文

    // 在这里实现获取枚举描述的方法 public override string Description =&gt; GetDescription(Enum.Parse(EnumType, Name)); private string GetDescription(object value) { var fi = value.GetType().GetField...

    JAVA中的枚举类型2:高级特性.doc

    ### JAVA中的枚举类型2:高级特性 #### 概述 枚举类型是Java语言中一个非常实用且灵活的功能。通常情况下,我们将其用于表示一组固定的常量集合,如一周中的几天、颜色选项等。然而,Java中的枚举类型远不止于此。...

    关于c#中枚举类型支持显示中文的扩展说明

    2. 创建一个服务类,如`EnumService`,提供一个方法获取枚举值的描述。 3. 在UI层调用该服务类的方法,将枚举值转换为对应的中文描述。 通过这种方式,我们可以确保枚举类型的用户界面友好性,使得非开发人员也能...

    C#特性与枚举值遍历

    这可以通过`ToDictionary()`方法实现,首先获取枚举成员和描述,然后构建字典。 以下是一个简单的实现示例: ```csharp using System; using System.Collections.Generic; using System.ComponentModel; using ...

    16.通过重写 class 的 ToString().pdf

    在获取枚举的描述信息时,可以通过编写一个扩展方法,遍历枚举类型,获取对应的字段,并检查该字段是否被Description特性标记,以此来返回描述文本。 4. 重写ToString()方法以简化获取枚举描述信息: 通过重写class...

    给枚举值增加扩展数据

    以下是如何获取枚举成员描述的示例: ```csharp FieldInfo field = typeof(Color).GetField("Red"); DescriptionAttribute description = (DescriptionAttribute)field.GetCustomAttribute(typeof...

    通过枚举反向给实体类赋值

    在Java编程中,枚举类型(Enum)是一种强大的工具,用于定义一组固定的常量。它在许多场景下比使用字符串或整数常量更安全、更易于管理。然而,在实际开发中,我们经常需要将枚举值反向映射到实体类的属性上,以便在...

    枚举操作类

    但有时我们需要自定义每个枚举值的描述,这时可以创建一个`GetDescription`方法,通过反射获取枚举成员上的`Description`特性,返回对应的说明文本。 2. **枚举值的判断**:`IsInEnum`方法可以检查一个给定的字符串...

    枚举绑定ComboBox

    6. 可选:设置ComboBox的ValueMember属性,以便在选定项时获取枚举值。 下面是一个示例代码片段,展示了如何实现枚举与ComboBox的绑定: ```csharp public partial class Form1 : Form { public Form1() { ...

    重难点之JAVA枚举.pdf

    枚举类型还支持`values()`方法,它返回包含所有枚举常量的数组,可以方便地遍历枚举的所有值: ```java public class PrintDemo { public static void main(String[] args) { for (Color c : Color.values()) { ...

    枚举+枚举类+定义和使用+学习

    在这个例子中,`Color`枚举类包含了每个颜色的描述,通过构造函数初始化,并提供了获取描述的方法。 三、枚举实现接口 枚举类可以像普通类一样实现接口,扩展其功能。例如,我们可以定义一个`Printable`接口,并让`...

Global site tag (gtag.js) - Google Analytics