Main Content

.NET デリゲートの組み合わせと削除

MATLAB® はインスタンス メソッド Combine を提供しており、これは一連のデリゲートを組み合わせて単一のデリゲートにします。Remove および RemoveAll メソッドは個々のデリゲートを削除します。詳細については、.NET に関する詳細の説明にあるように .NET クラス ライブラリのドキュメンテーションを参照してください。

たとえば、NetDocDelegate.delInteger デリゲートで使用する以下の MATLAB 関数を作成します。

function out = action1(n)
out = "Add flour";
disp(out)
end
function out = action2(n)
out = "Add eggs";
disp(out)
end

デリゲート step1 および step2 を作成します。

step1 = NetDocDelegate.delInteger(@action1);
step2 = NetDocDelegate.delInteger(@action2);

新しいデリゲート mixItems として結合させるには、以下を入力します。

mixItems = step1.Combine(step2);

または以下を入力します。

mixItems = step1.Combine(@action2);

mixItems を呼び出します。

result = mixItems(1);

この場合、関数 action1 の後に action2 が続きます。

Add flour
Add eggs

result の値は最終デリゲート (step2) からの出力です。

result = 
Add eggs

System.Delegate クラスの静的メソッド CombineRemove および RemoveAll も使用可能です。

mixItems から step1 を削除するには、以下を入力します。

step3 = mixItems.Remove(step1);

参考

| |

関連するトピック