枚举
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);
}