先想到这吧

This commit is contained in:
fengjiayi
2024-09-25 22:20:23 +08:00
parent c67315990b
commit e81c527086
26 changed files with 362 additions and 446 deletions

View File

@@ -0,0 +1,35 @@
using Serein.Library.Attributes;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
namespace Serein.Library.Utils
{
public static class EnumHelper
{
public static TResult GetBoundValue<TEnum, TResult>(TEnum enumValue, Func<BindValueAttribute, object> valueSelector)
where TEnum : Enum
{
var fieldInfo = typeof(TEnum).GetField(enumValue.ToString());
var attribute = fieldInfo.GetCustomAttribute<BindValueAttribute>();
return attribute != null ? (TResult)valueSelector(attribute) : default;
}
//public static TResult GetBoundValue<TEnum, TAttribute, TResult>(TEnum enumValue,
// Func<TAttribute, TResult> valueSelector)
// where TEnum : Enum
// where TAttribute : Attribute
//{
// var fieldInfo = typeof(TEnum).GetField(enumValue.ToString());
// var attribute = fieldInfo.GetCustomAttribute<TAttribute>();
// return attribute != null ? valueSelector(attribute) : default;
//}
}
}