拡張メソッド
利点
- クラス提供者ではなく利用者が、クラスを後から拡張できる
- Mix-inとはまた違う、クラス横断型のクラス拡張方法 (としても使える)
- パイプ&フィルタ(例:LINQ)がネストした関数呼び出しから、左から右へと続く一連の関数の羅列になり、いかにもパイプらしく見える
欠点
- 濫用は間違いなく混乱の元
- どのメソッドが呼ばれるのか複雑になる
- バージョン管理の問題も出てくる
C#3.0は関数型のエッセンスを取り入れたとよく言われるけど、むしろLL方向に近づいていると思います、ハイ。RubyとC#3.0はとても似ていると思います。LL方面の人がC#3.0を見れば違和感は感じないかもしれないけど、JavaやC#2.0方面の人が見ればこんなのありかよっと感じる人が多そう、とか最近考えていたり。