コンパイルされると、次の違いが生じます。
delegate { x = 0; }
そして
() => { x = 0 }
?
ベストアンサー1
短い答え:いいえ。
関係ないかもしれない長い回答:
- ラムダをデリゲート型 ( や
Func
などAction
) に割り当てると、匿名デリゲートが取得されます。 - ラムダを Expression 型に割り当てると、匿名デリゲートではなく式ツリーが生成されます。式ツリーは匿名デリゲートにコンパイルできます。
編集: ここに Expressions へのリンクがいくつかあります。
- System.Linq.Expression.Expression(TDelegate)(ここから始める)。
- デリゲート(System.Funcなど)を使用したLinqインメモリは、System.Linq.列挙可能. Linq to SQL(および他のあらゆるもの)の式の使用System.Linq.クエリ可能これらのメソッドのパラメータを確認してください。
- アンScottGuからの説明簡単に言うと、Linq in-memory はクエリを解決するための匿名メソッドをいくつか生成します。Linq to SQL はクエリを表す式ツリーを生成し、そのツリーを T-SQL に変換します。Linq to Entities はクエリを表す式ツリーを生成し、そのツリーをプラットフォームに適した SQL に変換します。