1

ファクトリ メソッドを使用せずに任意の linq 式を簡単に作成できます。Expression例えば:

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()();

ファクトリ メソッドを呼び出して手動で式を作成する利点は何ですか?

4

1 に答える 1

5

例:

  • 事前に知らないモデルのリフレクションに基づいてクエリを作成している
  • 入力に基づいてクエリを作成している、つまり文字列を解析している"(a.b + c) * 7"
  • 複数の式を 1 つの式に構成している (ビジター パターンなど)
  • ラムダを介して有効に表現できないこと、つまりステートメント本体、メンバー割り当てなどを行っています (これらは .NET 4.0 で利用できますが、ラムダ コンパイラを介しては利用できません)。
  • ラムダ コンパイラを持たない言語/バージョンを使用している
  • ラムダ構造をきめ細かく制御したい (つまり、何が定数か、何がキャプチャされるかなど)
  • すべてがどのように機能するかを知りたいだけです
于 2012-04-24T09:14:02.893 に答える