您的位置:首页 > 其它

获取枚举常量的描述值Description

2018-03-29 11:03 337 查看

枚举

1.属于值类型,继承ValueType

2.声明枚举后直接使用。

3.所有枚举都是 Enum 类型的实例

过程

需求:获取枚举值得Description

方法:Description是一个特性,继承自Attribute,Attribute中有方法GetCustomAttribute可以获取到特性实例(在这里是获取DescriptionAttribute的实例),DescriptionAttribute中有方法Description获取到描述的值。

public  enum Status
{
[Description("删除")]
Delete=1,
[Description("禁用")]
Disable=1,
[Description("正常")]
Normal=2
}

public static  string GetDescription( Enum value, bool nameInstend = true)
{
// 获取枚举类型Status
var type = typeof(Status);
// 获取常数名称Delete
var name = Enum.GetName(type,Status.Delete);
// 获取常数访问权限
System.Reflection.FieldInfo field = type.GetField(name);
// 获取常数上特性类(这里是DescriptionAttribute)
var attribute = Attribute.GetCustomAttribute(field,typeof(DescriptionAttribute)) as DescriptionAttribute;
// 用DescriptionAttribute的方法Description获取描述值
Console.WriteLine(attribute.Description);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Description Attribute Enum