『究極のC#プログラミング』 Appendix2 式ツリー

式ツリーは実行中に式をオブジェクトのツリーとして扱えるもの。
.NET Framework 3.5の新機能。


ラムダ式が単なる匿名メソッドの簡略記法ではない点は、
「式本体を持つラムダ式は、式ツリーに変換できる」
という点である。


式ツリーはLINQ to SQLなどでは必須だが、一般のプログラムではあまり使用しない。




式ツリー
http://msdn.microsoft.com/ja-jp/library/bb397951.aspx

System.Linq.Expressions 名前空間は、式ツリーを手作業で作成するための API を提供します。

System.Linq.Expressions 名前空間 ()
http://msdn.microsoft.com/ja-jp/library/system.linq.expressions.aspx


方法 : 式ツリーを実行する
http://msdn.microsoft.com/ja-jp/library/bb882536.aspx
式ツリーをCompile()すれば、ラムダ式になり、実行できるようになる。
LambdaExpression.Compile メソッド (System.Linq.Expressions)
http://msdn.microsoft.com/ja-jp/library/bb356928.aspx



方法 : 式ツリーを変更する
http://msdn.microsoft.com/ja-jp/library/bb546136.aspx
式ツリーを変更するには、式ツリービジタを実装する
方法 : 式ツリー ビジタを実装する
http://msdn.microsoft.com/ja-jp/library/bb882521.aspx

式ツリー ビジタを実装します。このクラスは、機能として式ツリーの走査、確認、またはコピーを実行する必要がある特別なクラスを作成するために継承される