C# 扩展方法——获得枚举的Description
标签:lan div his tar target ret bsp var 枚举
其他扩展方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html
///
/// 扩展方法,获得枚举的Description
///
/// 枚举值
/// 当枚举值没有定义DescriptionAttribute,是否使用枚举名代替,默认是使用
/// 枚举的Description
public static string GetDescription(this Enum value, Boolean nameInstead = true)
{
Type type = value.GetType();
string name = Enum.GetName(type, value);
if (name == null)
{
return null;
}
FieldInfo field = type.GetField(name);
DescriptionAttribute attribute = System.Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;
if (attribute == null && nameInstead == true)
{
return name;
}
return attribute?.Description;
}
随便整一个枚举
public enum ModuleType
{
///
/// 中国
///
[Description("中国")]
ZH = 1,
///
/// 美国
///
[Description("美国")]
MG = 2
}
举例 :var AppId = ModuleType.ZH.GetDescription() // 得到“中国”
C# 扩展方法——获得枚举的Description
标签:lan div his tar target ret bsp var 枚举
原文地址:https://www.cnblogs.com/zhuanjiao/p/12082898.html
评论