【发布时间】:2016-05-05 10:31:27
【问题描述】:
我们可以编写如下代码:
Func<string, string> func = x => x + x;
我们也可以这样写:
Expression<Func<string, string>> exp = x => x + x;
但是当我写的时候:
Expression<Func<string, string>> exp = func;
编译器抛出错误:
无法将类型“System.Func”隐式转换为 'System.Linq.Expressions.Expression>'
所以我将代码更改如下:
Expression<Func<string, string>> exp = (Expression<Func<string, string>>)func;
和以前一样的错误。
那么 x => x + x; 的真正类型是什么,Expression 和 Delegate/Lambda Expression 之间的关系是什么?
【问题讨论】:
标签: c# lambda delegates expression expression-trees