+-

这是一些返回线性函数的代码(y = ax b).
public static Func<double, double> LinearFunc(double slope, double offset)
{
return d => d * slope + offset;
}
我可以用表达式树做同样的事情,但我不确定这是值得的.
我知道lambda将捕获参数,这是一个缺点.还有其他我不了解的优点/缺点吗?
我的主要问题是,在这种情况下使用表达式树是否值得?为什么或者为什么不?
最佳答案
如果您在编译时知道代码,我几乎肯定会使用lambda表达式.捕获参数(而不是表示为常量)这一事实几乎总是无关紧要 – 为了证明构建表达式树,你必须证明它是重要的.
在以下情况下,表达树更适用:
>您希望从不同的表达式动态构建它们
>您希望将表达式树分析为数据,例如作为LINQ提供商
如果不是这种情况,使用lambda表达式的可读性好处是巨大的.
点击查看更多相关文章
转载注明原文:c# – 动态创建Func <> - Lambdas与Expression树 - 乐贴网