C#4.0
仕事で.Net4.0環境を使うことになりそうな気配だったのでちょっと調べてみた。
とはいえ仕事で使う範囲では実は.Net3.5環境で十分なのだけど、開発環境は4.0になりそうなので4.0について知っておけばアドバンテージあるだろ?.Net3.5になったとき(というかC#3.0になったとき)、今でも別に困ってねーからどうでもいいやと思っていたけど、今となってはラムダ式と拡張メソッド、そしてLINQのない世界には戻りたくないです・・・。
というわけで、調べた結果役立ちそうなことをメモ。ソースはいつものごとく未確認飛行C。このサイトお世話になりすぎる。
- オプション引数
まぁ、Type.Missingを書かなくてよくなるとか、コンストラクタの宣言に:thisつけなくよくなったり、引数省略のためだけの使うんだか使わないんだかよくわからないオーバーロードを量産する必要はなくなった・・・がデメリットもあるのでご利用は計画的に。特にプラグイン(クラスライブラリ)関連では使わないほうがよさそう。でも対COM(と書くとCPU対戦にしか見えないな)ではクソ便利。
- ジェネリクスの共変性と反変性
これは密かに「普段気にしないけどいざ使えない状況に陥ると発狂するほど便利な機能」な気がする。IEnumerable
- Dynamic
用途色々。Javascript的なことができるようになるのかなぁ。でもうっかり乱発すると静的型付け言語としての優位性が失われるので使いどころが難しいな。クラスやメソッドの中で閉じてる分には大丈夫?publicなプロパティの戻り値の型がDynamicだったら世紀末の幕開けだね!!
第一印象は大体こんな感じ。