这是一些返回线性函数的代码(y = ax + b)。
public static Func<double, double> LinearFunc(double slope, double offset)
{
return d => d * slope + offset;
}
我可以用表达式树做同样的事情,但我不确定这是值得的。
我知道lambda将捕获参数,这是一个缺点。还有其他我不了解的优点/缺点吗?
我的主要问题是,在这种情况下使用表达式树是否值得?为什么或为什么不呢?
答案 0 :(得分:5)
如果你在编译时知道代码,我几乎肯定会使用lambda表达式。捕获参数(而不是表示为常量)这一事实几乎总是无关紧要 - 为了证明构建表达式树的合理性,您必须证明它是重要的
表达式树在以下情况下更适用:
如果不是这种情况,使用lambda表达式的可读性好处是巨大的。