C#获取枚举描述
本文参考地址:https://www.cnblogs.com/myyBlog/p/6738563.html
枚举类型在程序中必不可少,特别是在类型选择的地方;但是我们经常需要添加额外的中文对应选择,其实不如直接用描述属性
核心代码:
具体代码:
public class EnumHelper
{
public static string GetEnumDescription(Enum type)
{
Type ty = type.GetType();
MemberInfo[] memInfos = ty.GetMember(type.ToString());
if(memInfos!=null&&memInfos.Length>0)
{
object[] objArr = memInfos[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
if(objArr!=null&&objArr.Length>0)
{
return (objArr[0] as DescriptionAttribute).Description;
}
}
return type.ToString();
}
}
举例枚举:最后一个是我们常用的注释,我们常用的注释不能起到明显的作用,除了给编程人员显示含义
具体代码:
public enum SeasonType
{
[Description("春天")]
Spring=1,
[Description("夏天")]
Summer=2,
[Description("秋天")]
Antumn=3,
[Description("冬天")]
Winter=4,
/// <summary>
/// 未知
/// </summary>
UnKnown=5
}
最终控制台调用:
具体代码:
static void Main(string[] args)
{
List<SeasonType> list = new List<SeasonType>() { SeasonType.Spring, SeasonType.Summer, SeasonType.Antumn, SeasonType.Winter, SeasonType.UnKnown};
foreach (var a in list)
{
Console.WriteLine(string.Format("{0}={1}",a.ToString(),(int)a));
Console.WriteLine(EnumHelper.GetEnumDescription(a));
}
Console.ReadKey();
}
最终运行结果: