.NET Framework 4.0 の Expression Trees
出張でしばらくノートPCで作業してたので触れずにいた VS 2010 CTP、ようやく家に戻ってきたので触ってみた。
# 「Virtual PCでの提供なのでメモリ2GB必須」とか言われたら、3年前発売のノートPCで動かせるわけもなく
.NET Framework 4.0 で、Expression Trees がものすごいパワーアップしています。具体的には、
- 複文
- 代入文
- 制御構文
が使えるようになりました。
要するに、今までは Expression Trees の名前通り、式しか書けなかったんですが、4.0 からは文が書けます。
確かに、Expression.Loop とかが増えています。
なのに・・・、ここまではいいのに・・・ C# のラムダ式には相変わらず式しか書けない・・・。以下のコードはエラーになる。
Expression<Func<int, int>> f = x => { int y = 1; for (; x > 0; --x) y *= x; return y; };