枚举相关(根据枚举值获取枚举描述,获取枚举的描述)
public enum AccountType { [Description("普通账户")] Ordinary= 1, [Description("重要账户")] Important= 2 }
#region 枚举相关 /// <summary> /// 获取枚举的描述 /// </summary> /// <param name="enumValue">枚举值</param> /// <returns></returns> public static string GetDescription(this Enum enumValue) { string value = enumValue.ToString(); FieldInfo field = enumValue.GetType().GetField(value); //获取描述属性 DescriptionAttribute descriptionAttribute = field.GetCustomAttribute<DescriptionAttribute>(); //当描述属性没有设置时,直接返回名称 return descriptionAttribute != null ? descriptionAttribute.Description : value; } /// <summary> /// 获取枚举StringValue /// </summary> /// <param name="enumValue"></param> /// <returns></returns> public static string GetStringValue(this Enum enumValue) { string output = null; System.Type type = enumValue.GetType(); System.Reflection.FieldInfo fi = type.GetField(enumValue.ToString()); StringValue[] attrs = fi.GetCustomAttributes(typeof(StringValue), false) as StringValue[]; if (attrs.Length > 0) { output = attrs[0].Value; } return output; } /// <summary> /// 根据枚举值,获取描述 /// </summary> /// <param name="enumValue"></param> /// <returns></returns> public static string GetEnumDesc(this Enum enumValue) { string value = enumValue.ToString(); FieldInfo field = enumValue.GetType().GetField(value); object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //获取描述属性 if (objs == null || objs.Length == 0) //当描述属性没有时,直接返回名称 return value; DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0]; return descriptionAttribute.Description; } #endregion
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!