我有这个方法需要将 int 值列表转换为适当的枚举值列表。
问题是 Select 正在返回一个对象类型,因为我没有为泛型函数指定返回类型,因为返回类型也是泛型的。
public static Tout Convert<Tout, Tin>(IList<Tin> reply)
{
Type resultListElementType = typeof(Tout).GetGenericArguments()[0];
MethodInfo setEnumValueMethod = typeof(EnumUtils).GetGenericMethod("SetEnumValue", new Type[] { typeof(Tin) });
MethodInfo setEnumValueGenericMethod = setEnumValueMethod.MakeGenericMethod(resultListElementType, typeof(Tin));
Tout result = (Tout)(dynamic)reply.Select(v => setEnumValueGenericMethod.Invoke(null, new object[] { v })).ToList();
return result;
}
通用函数签名如下
public static Tout SetEnumValue<Tout, Tin>(Tin value)
有什么方法可以配置泛型函数的返回类型?