自分用メモ:ラムダ式とデリゲートと匿名メソッドの違い
delegate void myfunc(int a, Array va); static void test_func(int i, Array va) { Debug.WriteLine("{0}", va.GetValue(i).ToString()); } private static void IO() { using (WebClient client = new WebClient()) { int max = 2; Array va = Enumerable.Repeat("http://weblogs.asp.net/dixin", max).Select(client.DownloadString).ToArray(); // ラムダ式 if ( false) { myfunc myf = (i, a) => { //ステートメント形式のラムダ Debug.WriteLine("{0}", a.GetValue(i).ToString()); };//セミコロン必須 for (int i = 0; i < max; i++) { myf(i, va);//キック } } // デリゲート if ( false ) { myfunc myf = test_func; for (int i = 0; i < max; i++) { myf(i, va);//キック } } { //匿名メソッド myfunc myf = delegate(int i, Array a) { Debug.WriteLine("{0}", a.GetValue(i).ToString()); }; for (int i = 0; i < max; i++) { myf(i, va);//キック } } } }