気が利かないやつめ・・
なぜか↓こいつは”未割り当てのローカル変数'n'が参照されました”というコンパイルエラーが出る。
using System; namespace garu.test { class test { delegate void callback(); static void Main(string[] args) { int n; callback f2 = delegate { Console.WriteLine(n); }; n = 100; f2(); } } }
問題になっているのはdelegateの中のnの読み出し。しかし、このdelegateを定義した時点ではこのf2は実行されていない。その後の100の代入をしたうえでf2()を実行しているのだ。
こういうのを見ると、”ははあ、所詮コンピュータだなあ”とちょっとほほえましく思う。人間みたいに色々と気が利くようになるのは、まだ先の話なんだろうだろうなあ。