1
我可以很容易地構建任何LINQ表達式,而無需使用Expression
工廠方法。例如:大廈LINQ表達式
Func<int, string> f = i =>
{
var result = i.ToString();
//... rest of the code
return result;
};
Expression<Func<string>> f2 =() => f(123);
var s = f2.Compile()();
什麼是通過調用工廠方法手動構建表達的優勢在哪裏?
我正在寫一個表達式解析器。我發現編譯匿名函數比編譯linq表達式要簡單得多。我想知道哪種方式更好,並有更多的應用程序? – 2012-04-24 09:38:36
@mrtofigh如果你正在寫一個*解析器*,那大概是在運行時執行,你必須直接使用'Expression'。如果將它卸載到*編譯器*(或使用'CSharpCodeProvider'),則只能使用lambda表達式。就我個人而言,我可能會在這裏看'ILGenerator',但我有點....挑剔。 – 2012-04-24 09:40:03