C#におけるデリゲートの使い方


まず、デリゲートの定義方法から始めましょう。C#では、デリゲートはdelegateキーワードを使用して定義されます。以下の例をご覧ください。

delegate void MyDelegate(string message);
// デリゲートを使用するメソッド
static void DisplayMessage(string message)
{
    Console.WriteLine("メッセージ: " + message);
}
// デリゲートのインスタンス化と使用
MyDelegate del = new MyDelegate(DisplayMessage);
del("こんにちは、デリゲート!");

上記の例では、MyDelegateというデリゲートが定義されています。このデリゲートは、引数としてstring型のメッセージを受け取り、戻り値はありません。また、DisplayMessageというメソッドが定義されています。

デリゲートを使用する際には、まずデリゲートのインスタンスを作成し、それに対してメソッドを割り当てます。上記の例では、delというデリゲートのインスタンスを作成し、DisplayMessageメソッドを割り当てています。そして、デリゲートを使用してメソッドを呼び出すことができます。

次に、デリゲートを使用して複数のメソッドを呼び出す方法について見てみましょう。以下の例をご覧ください。

delegate void MyDelegate();
static void Method1()
{
    Console.WriteLine("メソッド1");
}
static void Method2()
{
    Console.WriteLine("メソッド2");
}
static void Main(string[] args)
{
    MyDelegate del = Method1;
    del += Method2;
    del();
}

上記の例では、MyDelegateというデリゲートが引数も戻り値もないことを示しています。Method1Method2という2つのメソッドが定義されています。

デリゲートを使用して複数のメソッドを呼び出す場合、デリゲートのインスタンスに対して複数のメソッドを追加することができます。+=演算子を使用してメソッドを追加し、デリゲートを呼び出すと、追加されたメソッドが順番に実行されます。

デリゲートは、イベント処理や非同期プログラミングなど、さまざまな場面で活用されます。この記事では、デリゲートの基本的な使い方といくつかのコード例を紹介しましたが、さらに詳細な使い方や応用的なテクニックについては、公式のC#ドキュメントや参考書を参照することをおすすめします。