デリゲート呼び出し中に
そのデリゲートに変更を加えても、その変更はデリゲートの呼び出しが全て完了するまで反映されない。
delegate void NonParamMethod(); static NonParamMethod TheEvent; void Main(string[] args) { TheEvent += Func1; TheEvent += Func2; TheEvent(); } void Func1() { Console.WriteLine("1"); TheEvent -= Func2; } void Func2() { Console.WriteLine("2"); }
よって、このコードの実行結果は
1 2
となる。