System.Linq.Expressions名前空間

匿名メソッドと違い、ラムダ式はデータ(?)として扱うことが出来る。
2005年9月時点の仕様書には一例が載っていたけど「これはまた別の機会に」的なことが書いてあって、
詳細は書かれていませんでした。(確か


一例では、与えられたラムダ式を分解するというサンプルでした。
# この辺は去年のCLR/Hの合宿で軽く発表したような記憶が・・・


で、Compile()メソッドというものがあったので、
動的に式を組み立ててそれを実行することも可能なのでしょう。(きっと
でも資料的なものが少なくて少し難しい。
内部的にはリフレクションを使っているんじゃないかなぁ。


ということで、とりあえずSystem.Linq.Expressions名前空間のクラスをメモ。

BinaryExpression
ConditionalExpression
ConstantExpression
ElementInit
Expression
Expression
ExpressionType
InvocationExpression
LambdaExpression
ListInitExpression
MemberAssignment
MemberBinding
MemberBindingType
MemberExpression
MemberInitExpression
MemberListBinding
MemberMemberBinding
MethodCallExpression
NewArrayExpression
NewExpression
ParameterExpression
TypeBinaryExpression
UnaryExpression