匿名メソッドは上位スコープにアクセスできる 匿名メソッドが名前のあるメソッドと決定的に違うのは、実は名前がないことではなく、上位スコープにアクセスできることである。 using System; delegate void MyAction(); class Program { static void Main(string[] args) { string message = "Hello! World!"; MyAction action = delegate() { Console.WriteLine(message); // messageは上位スコープの変数 }; action(); // 出力:Hello! World! } } この場合、変数messageはMainメソッドに属する変数であり、匿名メソッドには属していない。しかし、匿名メソッドは上位スコープにアクセスできるので、