2012-04-04 7 views
65

私は複数回聞いた表現木という概念を見つけました。私は表現木とその目的が何を意味するのか理解したい。Expression Treesとは何ですか、どのように使用するのですか、それらを使う理由は何ですか?

誰かが私を簡単な説明と使用例に導くことができれば、私はそれが大好きです。

+1

可能性の重複[なぜあなたは、式を使用する>のではなくのFunc ?](http://stackoverflow.com/questions/793571/why-would-you-use-expressionfunct-むしろfunより) – nawfal

+0

いくつかの例を挙げて回答します.http://stackoverflow.com/questions/403088/practical-use-of-expression-trees/20470060#20470060 – Moumit

答えて

63

表現ツリーは、基本的にコードである式を含むデータ構造です。したがって、これは、コード内で行うことのできる計算を表すツリー構造です。これらのコードは、一連のデータにわたって式ツリーを「実行」することで実行できます。

表現木についての素晴らしい点は、コードでそれらを構築できることです。つまり、コードの実行可能コード(または一連のステップ)をビルドします。他の式で式を置き換えることでコードを修正することもできます。

Expressionは、(int x => return x * x)のような関数代理人です。

も参照してくださいhttp://blogs.msdn.com/b/charlie/archive/2008/01/31/expression-tree-basics.aspx

+3

これは実際には当てはまりません。リンクされた記事で指摘されているように、エクスプレッションツリーは、主に他の場所で実行するためにワイヤを介して送信される計算を表すために使用されます。そのため、彼らはコードを含んでいません。むしろそれらはコードの代わりです。 –

+1

式ツリーは、ローカルまたはリモートで実行する計算に使用できます。型付き式を式ツリーに変換するパーサを簡単に書くことができます。また、Expression Treesにはコードが含まれているとは言いません。 –

+1

「それにコードを含むツリー構造」が「コードを含んでいる」という意味ではない場合は、解答を編集して明確にする必要があります。式にILコードが何も含まれていないことを明確にし、実行可能なものにさらに変換することに頼ってください。 –

関連する問題