委譲パーツ

Delegate パーツは関数のモデルを提供します。

Delegate パーツには、以下の特性があります。
  • 変数を宣言するときは、Delegate パーツ名をタイプとして指定します。 同じシグニチャーを使用して、変数に代入された、突き合わせ関数の名前を Delegate パーツとして割り当てます。
  • 関数呼び出しで関数名の代わりに delegate 変数を指定すると、関数を動的に呼び出せるよう選択することができます。
  • Delegate パーツは通常、イベント・ハンドラーを登録するためのインフラストラクチャー として使用されます。詳しくは、Java コードの ExternalTypeを参照してください。
  • ユーザー・インターフェースを含まない状態の場合、Delegate パーツは、関数ポインターの Dictionary 内の 要素として、または動的に関数を呼び出す方法として使用することができます。
  • Delegate パーツにはプロパティーがありません。

構文

委譲パーツの構文図
delegatePartName
Delegate パーツに割り当てる名前を指定します。
parameters
突き合わせ関数が必要とするパラメーターのリストです。delegate に定義されるパラメーター・タイプと修飾子は、突き合わせ関数のものと同じにする必要があります。パラメーター名は異なる場合があります。
type
突き合わせ関数が戻さなければならない型です。

以下は、プログラムのコンテキスト内の Delegate パーツの例です。
Delegate FunctionInvoker
  (displayStr STRING)
end

Program greetings
// delegate 変数を宣言
invoker FunctionInvoker;

  Function main()
    // writeToScreen() は Delegate パラメーターに一致する必要がある
    invoker = writeToScreen;

    invoker("Hello world");
  end

  Function writeToScreen(myMsg STRING)
    sysLib.WriteStdOut (myMsg);
  end
end

互換性

表 1. 委譲パーツの互換性に関する考慮事項
プラットフォーム 問題
iSeries 委譲パーツを使用することはできません。