Choose your operating system:
Windows
macOS
Linux
動的なデリゲートはシリアライズすることができます。デリゲートの関数は名前で検索され、通常のデリゲートよりも動作が遅くなります。
動的デリゲートの宣言
動的デリゲートは、動的デリゲート固有の可変長マクロを使用する点を除いて 通常のデリゲートの宣言 と同じ方法で 宣言します。
マクロ宣言 |
説明 |
---|---|
|
動的なデリゲートを作成します。 |
|
動的なマルチキャスト デリゲートを作成します。 |
動的デリゲートのバインディング
ヘルパーマクロ |
説明 |
---|---|
|
動的デリゲートでBindDynamic() を呼び出すためのヘルパーマクロです。自動的に関数名の文字列を生成します。 |
|
動的なマルチキャストデリゲートで AddDynamic() を呼ぶヘルパーマクロです。自動的に関数名の文字列を生成します。 |
|
動的なマルチキャスト デリゲートで RemoveDynamic() を呼ぶヘルパー マクロです。自動的に関数名の文字列を生成します。 |
動的デリゲートの実行
デリゲートと結合している関数は、デリゲートの
Execute()
関数を呼ぶと実行されます。デリゲートが結合しているかどうかを実行前に確認する必要があります。デリゲートに戻り値があり、初期化されておらず、後でアクセスされる出力パラメータを持つ場合があるため、
コードをより安全にする目的で行います。結合していないデリゲートを実行すると、
場合によってはメモリ上に実際に書き込まれることがあります。デリゲートの実行が安全かどうかは
IsBound()
を呼び出して確認できます。デリゲートに戻り値がない場合も
ExecuteIfBound()
を呼び出せますが、
初期化されていない可能性のある出力パラメータに注意してください。
実行関数 |
説明 |
---|---|
|
結合をチェックせずにデリゲートを実行します |
|
デリゲートが結合されているかを確認し、結合している場合は Execute を呼び出します |
|
デリゲートが結合されているかを確認します (
|
マルチキャスト デリゲートの実行に関する詳細は「 マルチキャスト デリゲート 」を参照してください。