2012-05-26 109 views
5

以下是返回線性函數(y = ax + b)的一些代碼。動態創建Func <> - Lambdas與表達式樹

public static Func<double, double> LinearFunc(double slope, double offset) 
{ 
    return d => d * slope + offset; 
} 

我可以對錶達式樹做同樣的事情,但我不確定這是否值得付出努力。

我知道lambda將捕獲參數,這是一個缺點。還有沒有我不知道的優點/缺點?

我的主要問題是,是否值得在這種情況下使用表達式樹?爲什麼或者爲什麼不?

+0

你多久打一次結果函數? –

+0

任何地方從1到數百萬。 –

回答

5

如果你在編譯時知道代碼,我肯定會使用lambda表達式。參數被捕獲(而不是表示爲常量)的事實幾乎總是無關緊要的 - 爲了證明構建表達式樹的正確性,您必須證明它是重要的。

  • 你想從不同的位表情動態地建立他們
  • 要分析表達式樹作爲數據,例如:當

    表達式樹是更適用作爲LINQ提供商

如果情況並非如此,使用lambda表達式的可讀性好處很大。

相關問題