我毫不怀疑这是尽可能简单易行的,但我有一个函数创建库会为我创建如下形式的lambda函数:
Func<T1, object>
我希望您能更具体地指定输出参数 - 基本上,我希望能够创建类似以下的内容:
private Func<T1, T2> GetFunc<T1, T2>(string expression)
{
Func<T1, object> objFunc = CreateFunction(expression));
return objFunc as Func<T1, T2>;
}
但是,当我尝试这样做时,返回了一个null
(顺便说一句,如果我将objFunc
作为Func<T1, object>
返回,则不会返回null,因此我知道这不是我的问题所在)。
我应该如何正确实现?
(Func<T1, T2>)objFunc
)。除非你有充分的理由,否则不要使用as
。这样,你的语句将会快速失败并抛出InvalidCastException
异常,而你也不必跟踪NullReferenceException
和“检查值是否为空以知道转换是否失败”。 - Heinzi