通过特性给一个枚举类型每个值增加一个字符串说明,用于打印或显示。
自定义打印特性
[AttributeUsage(AttributeTargets.Field)]
public class EnumDisplayAttribute : Attribute
{
public EnumDisplayAttribute(string displayStr)
{
Display = displayStr;
}
public string Display
{
get;
private set;
}
}
打印特性定义很简单,只含有一个字符串属性。
定义一个枚举
public enum TestEnum
{
[EnumDisplay("一")]
one,
[EnumDisplay("二")]
two,
three
}
枚举类型one,two均增加了一个打印特性。
增加枚举扩展方法取得打印特性值
public static class TestEnumExtentions
{
public static string Display(this TestEnum t)
{
var fieldName = Enum.GetName(typeof(TestEnum), t);
var attributes = typeof(TestEnum).GetField(f