/// <summary> /// /// </summary> /// <param name="member">成员名或者枚举值,例如:Gender中有Boy=1,则传入Boy或者1可获得Gender.Boy</param> /// <param name="value"></param> /// <typeparam name="TEnum">枚举类型</typeparam> /// <returns></returns> public static bool TryParse<TEnum>(object member, out TEnum value) where TEnum : System.Enum { value = default; string memberStr = member.SafeString(); if (string.IsNullOrWhiteSpace(memberStr)) { if (typeof(TEnum).IsGenericType) return false; throw new ArgumentNullException(nameof(member)); } value = (TEnum) System.Enum.Parse(TypeCommon.GetType<TEnum>(), memberStr, true); var enumValue = value.ConvertToInt(null); if (enumValue == null) { return false; } return enumValue.Value.IsExist(TypeCommon.GetType<TEnum>()); }
/// <summary> /// 获取枚举的成员值 /// </summary> /// <param name="member">枚举类型</param> /// <typeparam name="TEnum">成员名或者枚举值,例如:Gender中有Boy=1,则传入Boy或者1或者Gender.Boy可获得其value</typeparam> /// <returns></returns> public static int? GetValue<TEnum>(object member) where TEnum : struct { return GetValue(TypeCommon.GetType<TEnum>(), member); }
/// <summary> /// 获取枚举实例 /// </summary> /// <param name="member">枚举类型</param> /// <typeparam name="TEnum">成员名或者枚举值,例如:Gender中有Boy=1,则传入Boy或者1或者Gender.Boy可获得其key</typeparam> /// <returns></returns> public static string GetKey<TEnum>(object member) { return GetKey(TypeCommon.GetType<TEnum>(), member); }
/// <summary> /// 得到自定义描述 /// </summary> /// <param name="member">成员名、值、实例均可</param> /// <typeparam name="T">得到自定义描述</typeparam> /// <typeparam name="TEnum">枚举类型</typeparam> /// <returns></returns> public static T GetCustomerObj<T, TEnum>(object member) where T : Attribute { return GetCustomerObj<T>(TypeCommon.GetType<TEnum>(), member); }
/// <summary> /// 返回枚举项的描述信息。 /// </summary> /// <param name="member">成员名、值、实例均可</param> /// <typeparam name="TEnum">枚举类型</typeparam> /// <returns>枚举想的描述信息。</returns> public static string GetDescription<TEnum>(object member) { return GetDescription(TypeCommon.GetType<TEnum>(), member); }