C#可以通过给枚举类型增加描述特性(Description Attribute),为每个枚举成员添加对应的文字说明,方便代码的阅读和维护。
实现的步骤如下:
1. 定义枚举类型
首先需要定义一个枚举类型,以示例说明为例:
public enum Gender
{
[Description("未知")]
Unknown = 0,
[Description("男性")]
Male = 1,
[Description("女性")]
Female = 2
}
在枚举成员的上方添加Description
特性,括号中为对应的文字描述。
2. 添加描述特性
需要引用System.ComponentModel
命名空间,使用DescriptionAttribute
类为枚举成员添加描述特性,示例代码如下:
using System.ComponentModel;
public enum Gender
{
[Description("未知")]
Unknown = 0,
[Description("男性")]
Male = 1,
[Description("女性")]
Female = 2
}
3. 获取枚举成员的描述特性
通过Type
类的静态方法GetField
获取枚举成员的FieldInfo
对象,再通过FieldInfo
对象的GetCustomAttribute
方法获取特性对象,最后通过特性对象的Description
属性获取特性描述文字。
示例代码如下:
Gender gender = Gender.Female;
FieldInfo fieldInfo = typeof(Gender).GetField(gender.ToString());
DescriptionAttribute attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute;
string description = attribute.Description;
Console.WriteLine(description); // 输出:女性
另外,也可以定义一个扩展方法,简化获取枚举成员描述的代码。示例代码如下:
using System.ComponentModel;
using System.Reflection;
public static class EnumExtensions
{
public static string GetDescription(this Enum value)
{
FieldInfo fieldInfo = value.GetType().GetField(value.ToString());
DescriptionAttribute attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute;
return attribute == null ? value.ToString() : attribute.Description;
}
}
Gender gender = Gender.Male;
string description = gender.GetDescription();
Console.WriteLine(description); // 输出:男性
以上是C#给枚举类型增加描述特性的攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#如何给枚举类型增加一个描述特性详解 - Python技术站