C# 2.0から、新しいデリゲートの書き方が可能になり、メソッド名をそのまま左辺に持ってくることが可能になった・・・。
<デリゲート型名> <デリゲートオブジェクト> = <呼び出すメソッド名>;
これまで、
// 名前空間の登録 using System; // 共通データ型と基本クラス(System名前空間) // デリゲートの定義. delegate int AddDelegate(int a, int b); // 引数がint型のa, b, 戻り値がint型のメソッドを持つデリゲートAddDelegate. // メインクラス class MainClass // MainClassクラスの定義 { // メインメソッド static void Main() // Mainメソッドの定義 { // デリゲートの生成. AddDelegate add = new AddDelegate(Add); // Addを呼ぶAddDelegate型addを生成. // addが持つメソッドを実行. int result = add(10, 20); // addに10と20を渡し, 結果をresultに格納. // 結果の出力. Console.WriteLine("result = " + result); // resulの値を出力. } // aとbを足すメソッド. static int Add(int a, int b) { // aとbを足した値を返す. return a + b; // a + bを返す. } }
こうだったのが、
この書き方でもよくなった・・・。
結果は、
result = 30 続行するには何かキーを押してください . . .
変わらない・・・。
newでわざわざデリゲートオブジェクトを作るところは確かに冗長だったかもしれない・・・。
Sample/cs/NewDelegate/NewDelegate/src/NewDelegate at master · bg1bgst333/Sample · GitHub