这行代码试图将一个 lambda 表达式赋值给一个 LambaExpression
类型的变量,
LambdaExpression expr = n => n;
编译错误信息如下:
无法将lambda表达式转换为类型“System.Linq.Expressions.LambdaExpression”,因为它不是委托类型
因此,需要将其转换为委托类型。就我而言,这在概念上似乎有些奇怪,因为我可以使用工厂方法构建出一个LambdaExpression
实例,例如:MSDN中的Factory Lambda
LambdaExpression lambdaExpr = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
new List<ParameterExpression>() { paramExpr }
);
而且这并不是一个委托类型。
这让我想知道为什么lambda到LambaExpression不能工作?