在主函数中:
public enum DB
{
[Description("读")]write = 1,
[Description("写")]read = 2,
}
private static void Main(string[] args)
{
//第一种方法
Console.WriteLine(DB.write.ToDescription());
Console.WriteLine(DB.read.ToDescription() + "\n");
//第二种方法
Console.WriteLine(DB.write.GetDescription());
Console.WriteLine(DB.read.GetDescription());
Console.ReadKey();
}
新创一个类文件MyException.cs:
public static class MyException
{
/// <summary>
/// 获取枚举类型的描述
/// </summary>
/// <param name = "enumeration"> </param>
/// <returns> </returns>
public static string ToDescription(this Enum enumeration)
{
var type = enumeration.GetType();
var memInfo = type.GetMember(enumeration.ToString());
if (null != memInfo && memInfo.Length > 0)
{
var attrs = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
if (null != attrs && attrs.Length > 0)
{
return ((DescriptionAttribute) attrs[0]).Description;
}
}
return enumeration.ToString();
}
/// <summary>
/// 获取枚举类型的描述
/// </summary>
/// <param name = "val"> </param>
/// <returns> </returns>
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;
}
}
结果:
标签:Console,Description,C#,DB,枚举,static,attrs,var From: https://www.cnblogs.com/shieryoufeng/p/17788805.html