using System.ComponentModel; using System.Reflection; namespace DS.Module.Core; /// /// 枚举工具类 /// public static class EnumUtil { /// /// 字符串转Enum /// /// 枚举 /// 字符串 /// 转换的枚举 public static T ToEnum(this string str) { try { return (T)Enum.Parse(typeof(T), str); } catch { return default(T); } } /// /// 获取到对应枚举的描述-没有描述信息,返回枚举值 /// /// /// public static string EnumDescription(this Enum @enum) { Type type = @enum.GetType(); string name = Enum.GetName(type, @enum); if (name == null) { return null; } FieldInfo field = type.GetField(name); if (!(Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) is DescriptionAttribute attribute)) { return name; } return attribute?.Description; } public static int ToEnumInt(this Enum e) { try { return e.GetHashCode(); } catch (Exception) { return 0; } } }