我有以下方法:
void Foo<T1>(Func<T1, Exception> exceptionFunc)
{
// Following line error: "Cannot convert from 'object' to 'T1'
Func<object, Exception> exF = (e) => exceptionFunc(e);
Foo2(exF);
}
我似乎无法弄清楚如何将Func
的通用参数T1
强制转换为object
Foo2()
所需的任何想法这样成功吗?
答案 0 :(得分:1)
您必须将对象转换为T1:
void Foo<T1>(Func<T1, Exception> exceptionFunc)
{
// Following line error: "Cannot convert from 'object' to 'T1'
Func<object, Exception> exF = obj => exceptionFunc((T1)obj);
Foo2(exF);
}
注意:如果对象与T1不兼容,则会在运行时抛出无效的强制转换异常。