Language:
Page Info
Engine Version:

動的デリゲート

動的なデリゲートはシリアライズすることができます。デリゲートの関数は名前で検索され、通常のデリゲートよりも動作が遅くなります。

動的デリゲートの宣言

動的デリゲートは、動的デリゲート固有の可変長マクロを使用する点を除いて 通常のデリゲートの宣言 と同じ方法で 宣言します。

マクロ宣言

説明

DECLARE_DYNAMIC_DELEGATE[_RetVal, etc.]( DelegateName )

動的なデリゲートを作成します。

DECLARE_DYNAMIC_MULTICAST_DELEGATE [_Const, _RetVal, etc.]( DelegateName )

動的なマルチキャスト デリゲートを作成します。

動的デリゲートのバインディング

ヘルパーマクロ

説明

BindDynamic( UserObject, FuncName )

動的デリゲートでBindDynamic() を呼び出すためのヘルパーマクロです。自動的に関数名の文字列を生成します。

AddDynamic( UserObject, FuncName )

動的なマルチキャストデリゲートで AddDynamic() を呼ぶヘルパーマクロです。自動的に関数名の文字列を生成します。

RemoveDynamic( UserObject, FuncName )

動的なマルチキャスト デリゲートで RemoveDynamic() を呼ぶヘルパー マクロです。自動的に関数名の文字列を生成します。

動的デリゲートの実行

デリゲートと結合している関数は、デリゲートの Execute() 関数を呼ぶと実行されます。デリゲートが結合しているかどうかを実行前に確認する必要があります。デリゲートに戻り値があり、初期化されておらず、後でアクセスされる出力パラメータを持つ場合があるため、 コードをより安全にする目的で行うものでです。結合していないデリゲートを実行すると、 場合によってはメモリ上に実際に書き込まれることがあります。デリゲートの実行が安全かどうかは IsBound() を呼び出して確認できます。デリゲートに戻り値がない場合も ExecuteIfBound() を呼び出せますが、 初期化されていない可能性のある出力パラメータに注意してください。

実行関数

説明

Execute()

ExecuteIfBound()

IsBound()

マルチキャスト デリゲートの実行に関する詳細は マルチキャスト デリゲート をご覧ください。