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 "";
}
}
}
相关推荐
通过反射,我们能获取到枚举类型的描述属性。 首先我们需要给枚举类型添加描述属性(属性都没有是不可能取到的),[Description]就是描述属性,使用这个属性,我们需要添加 using System.ComponentModel 引用。 ...
在某些场景下,我们需要获取枚举的属性值,比如描述信息,以便更好地展示给用户。本文将详细介绍如何使用反射(Reflection)来实现这一功能,并将其绑定到UI控件上。 首先,我们来看一下如何定义一个带有描述属性的...
在C#编程中,枚举(Enum)是一种强大的工具...这种方法不仅适用于单个枚举类型,也可以应用于项目中的所有枚举类型,大大提高了代码的可读性和可维护性。希望这篇详解能帮助你理解和应用这一技巧,提高你的C#编程实践。
C#如何给枚举类型增加一个描述特性详解 C#中,枚举类型是一种非常常用的类型,它可以使代码更易于维护、更清晰、更易于键入。但是,在输出枚举值时,我们通常需要将其转换为对应的汉语意思或其他语句,以便于理解和...
在本文中,我们探讨了如何使用DescriptionAttribute为枚举类型添加描述,以及如何通过反射编写一个通用的扩展方法来获取枚举值的描述。这样,我们不仅可以解决枚举值与显示值分离的问题,还能避免在多个枚举类型中...
// 在这里实现获取枚举描述的方法 public override string Description => GetDescription(Enum.Parse(EnumType, Name)); private string GetDescription(object value) { var fi = value.GetType().GetField...
### JAVA中的枚举类型2:高级特性 #### 概述 枚举类型是Java语言中一个非常实用且灵活的功能。通常情况下,我们将其用于表示一组固定的常量集合,如一周中的几天、颜色选项等。然而,Java中的枚举类型远不止于此。...
2. 创建一个服务类,如`EnumService`,提供一个方法获取枚举值的描述。 3. 在UI层调用该服务类的方法,将枚举值转换为对应的中文描述。 通过这种方式,我们可以确保枚举类型的用户界面友好性,使得非开发人员也能...
这可以通过`ToDictionary()`方法实现,首先获取枚举成员和描述,然后构建字典。 以下是一个简单的实现示例: ```csharp using System; using System.Collections.Generic; using System.ComponentModel; using ...
在获取枚举的描述信息时,可以通过编写一个扩展方法,遍历枚举类型,获取对应的字段,并检查该字段是否被Description特性标记,以此来返回描述文本。 4. 重写ToString()方法以简化获取枚举描述信息: 通过重写class...
以下是如何获取枚举成员描述的示例: ```csharp FieldInfo field = typeof(Color).GetField("Red"); DescriptionAttribute description = (DescriptionAttribute)field.GetCustomAttribute(typeof...
在Java编程中,枚举类型(Enum)是一种强大的工具,用于定义一组固定的常量。它在许多场景下比使用字符串或整数常量更安全、更易于管理。然而,在实际开发中,我们经常需要将枚举值反向映射到实体类的属性上,以便在...
但有时我们需要自定义每个枚举值的描述,这时可以创建一个`GetDescription`方法,通过反射获取枚举成员上的`Description`特性,返回对应的说明文本。 2. **枚举值的判断**:`IsInEnum`方法可以检查一个给定的字符串...
6. 可选:设置ComboBox的ValueMember属性,以便在选定项时获取枚举值。 下面是一个示例代码片段,展示了如何实现枚举与ComboBox的绑定: ```csharp public partial class Form1 : Form { public Form1() { ...
枚举类型还支持`values()`方法,它返回包含所有枚举常量的数组,可以方便地遍历枚举的所有值: ```java public class PrintDemo { public static void main(String[] args) { for (Color c : Color.values()) { ...
在这个例子中,`Color`枚举类包含了每个颜色的描述,通过构造函数初始化,并提供了获取描述的方法。 三、枚举实现接口 枚举类可以像普通类一样实现接口,扩展其功能。例如,我们可以定义一个`Printable`接口,并让`...