読者です 読者をやめる 読者になる 読者になる

新しいデリゲート

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