複数のメソッドを委譲

複数のメソッドをデリゲート(委譲)します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. Cpp/CLI のデリゲート(委譲)に複数のメソッドを登録して、一度に実行してみましょう。
    デリゲート(delegate)を用いて、メソッドの形式(タイプと引数)を定義します。
    呼び出すメソッドは void 型で、引数はありません。
    delegate void TestDelegate();
  2. デリゲートから呼び出されるメソッドです。
        void method1()
        {
            Console::WriteLine("method No1 が呼ばれました");
        }
        void method2()
        {
            Console::WriteLine("method No2 が呼ばれました");
        }
        void method3()
        {
            Console::WriteLine("method No3 が呼ばれました");
        }
        
  3. testdelegate に method1 を、test2 に method2 を登録します。
    登録するメソッドは、型と引数が一致していなければなりません。
    testdelegate に test2 を追加して、さらに method3 を追加します。
    この状態で testdelegate() を呼び出すと三個のメソッドが呼び出されます。
    testdelegate から test2 を削除して、testdelegate() を呼び出します。
    こんどは method1 と method3 が呼び出されます。
    デリゲートへのメソッドの追加は += で、削除は -= で行います。
        TestDelegate ^testdelegate = gcnew TestDelegate(&method1);
        TestDelegate ^test2 = gcnew TestDelegate(&method2);
        testdelegate += test2;
        testdelegate += gcnew TestDelegate(&method3);
        testdelegate();
        testdelegate -= test2;
        Console::WriteLine("※method No2 を削除");
        testdelegate();
        

超初心者のプログラム入門(C/C++)