C#のデリゲート

C#ではメソッドを参照することができる型、デリゲートという機能があります。

デリゲートとは代表あるいは委譲という意味で、機能としてはC/C++の関数ポインタとほぼ同様のものです。

デリゲートの定義

C#ではキーワード「delegate」を使用して以下のようにデリゲートを定義します。

delegate 戻り値 デリゲート名(引数1, 引数2, ...);

上記のようにデリゲートを定義することにより、定義したシグネチャと同様のシグネチャを持つメソッドを、 定義したデリゲートのとして扱うことができるようになります。

デリゲートの例

以下はデリゲートを使用した例です。

// デリゲートの定義
public delegate void DelegateMethod(string msg);

class Sample {
    public static void Main(string[] args) {
        DelegateMethod d = new DelegateMethod(Method);
        d("デリゲートメソッド呼出し");
    }
    
    public static void Method(string msg) {
        System.Console.WriteLine(msg);
    }
}

inserted by FC2 system