Delegate の基礎

Cpp/CLI のデリゲート(委譲)の基礎です。

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

プログラムの説明

  1. .NET Frame Work を使うと「共通した API を使って自分の得意とする言語でアプリケーションを開発することが出来る」と言うのが Microsoft の宣伝文句です。
    そこで Cpp/CLI と C# を使ってデリゲート(委譲)のプログラムを作成してみました。
  2. デリゲート(delegate: 代表、委譲、委託)とは、オブジェクト指向に合わせたメソッドを参照するための型です。
    delegate に呼び出したいメソッドを格納しておいて、これを通じてメソッドを呼び出します。
  3. まず最初にプログラムを作成して動かしてみて下さい。
    デリゲートのサンプルプログラム(Console.cpp)の全ソースコードです。
    /*★ Delegate のテストプログラム    前田 稔 ★*/
    #using <System.dll>
    using namespace System;
    
    delegate int TestDelegate( int x, int y );
    int method( int x, int y )
    {
        Console::WriteLine("method が呼ばれました");
        return x*y;
    }
    
    void main()
    {
        TestDelegate ^testdelegate = gcnew TestDelegate(&method);
        int result = testdelegate(3,4);
        Console::WriteLine("testdelegate(3,4)= {0}", result);
        Console::ReadLine();
    }
    
  4. デリゲート(delegate)を用いて、メソッドの形式(タイプと引数)を定義します。
    今回呼び出すメソッドは int 型で、二個の int 型の引数を受け取ります。
    delegate int TestDelegate( int x, int y );
  5. デリゲートから呼び出されるメソッドを method() として定義します。
        int method( int x, int y )
        {
            Console::WriteLine("method が呼ばれました");
            return x*y;
        }
        
  6. デリゲートにメソッド(method)を登録します。
    登録するメソッドは、型と引数が一致していなければなりません。
    TestDelegate ^testdelegate = gcnew TestDelegate(&method);
  7. デリゲートを通じてメソッドを呼び出します。
    int result = testdelegate(3,4);
  8. C# プログラムは「超初心者のプログラム入門(C#)/Delegate の基礎」を参照して下さい。
    Delegate の基礎

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