2009-03-01から1ヶ月間の記事一覧

拡張メソッドのターゲットにIList(T)とIEnumerable(T)のどちらを選ぶか?

.NET Frameworkのクラスライブラリでは、IEnumerable(T)に対して多数の拡張メソッドが用意されています。これは非常に便利です。ここで自作の拡張メソッドを作成する場合に悩むことがあります。集合に対する拡張をしたい場合、IEnumerable(T)向けに拡張メソ…

拡張メソッドは対象とする型の提供者以外は作成するべきではありません

非常に魅惑的な拡張メソッドですが、そのリスクについてはあまり語られていないように思えたので(百も承知だから誰も書いてないだけかもしれません) 、書いてみます。拡張メソッドとは、C#3.0、VB9.0で取り入れられた言語の機能で、詳細は下記のリンクを参照…

数式を解くプログラム その6(最後) - 構文解析3

id:yone-ken:20090223:p1 の続きです。さっそく、Expressionクラスから見ていきます。 class Expression : Node { public override void Evaluate(Context<Token> context) { Node left = new Term(); left.Evaluate(context); this.Value = left.Value; while (tru</token>…