//基础枚举
public enum Name
{
[Description("鲍勃")]
boob,
[Description("鲍勃")]
JackMa,
[Description("陈龙")]
JackChan,
[Description("丽莎")]
Lisa,
[Description("保罗")]
Poro
}
//主要这个GetDescription()方法,看不懂没关系,如何调用
static class EnumExtensions
{
public static string GetDescription(this Enum val)
{
var field = val.GetType().GetField(val.ToString());
var customAttribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute));
return customAttribute == null ? val.ToString() : ((DescriptionAttribute)customAttribute).Description;
}
}
//调用进行反射
foreach (Name e in Enum.GetValues(typeof(Name)))
{
if (e.GetDescription().Equals("鲍勃"))
{
Console.WriteLine("进行反射逻辑编写");
//Console.WriteLine(e.GetDescription());
Console.WriteLine(e.ToString());
}
}
C# 枚举+反射
最新推荐文章于 2024-11-19 23:34:02 发布