第一步:新建枚举
using System.ComponentModel;
/// <summary>
/// 性别
/// </summary>
[Description("性别")]
public enum EnGender
{
/// <summary>
/// 女
/// </summary>
[Description("女")]
Famle,
/// <summary>
/// 男
/// </summary>
[Description("男")]
Male,
}
第二部:建立枚举扩展方法
using System.Reflection;
/// <summary>
/// 自定义扩展类
/// </summary>
public static class CustomExtend
{
public static string EnDescription(this Enum en)
{
MemberInfo[] infos = en.GetType().GetMember(en.ToString());
if (infos != null && infos.Length > 0)
{
object[] attrs = infos[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
if (attrs != null && attrs.Length > 0)
return ((DescriptionAttribute)attrs[0]).Description;
}
return en.ToString();
}
}
第三步:方法调用
static void Main(string[] args)
{
// 第一种方法 调用CustomExtend.EnDescription(枚举值),得到枚举对应的描述
Console.WriteLine(CustomExtend.EnDescription(EnGender.Famle));
// 第二种方法 使用枚举的EnDescription扩展方法
Console.WriteLine(EnGender.Famle.EnDescription());
Console.WriteLine(EnGender.Male.EnDescription());
Console.ReadKey();
}
结果: