匿名メソッドの仕組み - 匣の向こう側
http://d.hatena.ne.jp/akiramei/20060503/p2
C#2.0で導入された匿名メソッドが直感的ではない挙動をするという点について述べられています。
匿名クラスがコンパイルされる際に
- 匿名クラスが生成される
- 最低限のインスタンスが生成される
ため、たとえばループ内で匿名メソッドが生成されるときには
となります。「生成される」というのが肝で、ループ内で値が変わっても各インスタンスで値が変わるということにはならないので注意が必要です。特に、ループカウンタが後者であることを見落としがちです。