首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#将Func<T1,object>转换为Func<T1,T2>

C#将Func<T1,object>转换为Func<T1,T2>
EN

Stack Overflow用户
提问于 2015-08-18 16:54:26
回答 2查看 1K关注 0票数 13

我毫不怀疑这是尽可能容易做到的,但是我有一个函数创建者库,它为我创建了这个表单的lambda函数:

代码语言:javascript
复制
Func<T1, object>

我希望更具体地指定out参数--基本上,我希望能够创建类似于:

代码语言:javascript
复制
private Func<T1, T2> GetFunc<T1, T2>(string expression)
{
    Func<T1, object> objFunc = CreateFunction(expression));
    return objFunc as Func<T1, T2>;
}

但是,当我尝试这样做时,我会得到一个null (作为一个旁白,如果我作为一个Func<T1, object>返回objFunc,它不是null,所以我知道这不是我的问题所在)。

我该如何正确地做这件事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-18 16:56:42

尝试:

代码语言:javascript
复制
private Func<T1, T2> GetFunc<T1, T2>(string expression)
{
    Func<T1, object> objFunc = CreateFunction(expression));
    return arg=>(T2)objFunc(arg);
}
票数 16
EN

Stack Overflow用户

发布于 2015-08-18 16:56:29

简单地将现有的函数调用封装到对返回值执行强制转换的另一个函数调用中会有效吗?

代码语言:javascript
复制
return t1 => (T2)objFunc(t1);
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32078313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档