私はこの方法を持っています:
public override void respond(params string[] resargs)
{
foreach (command cmd in pndgcmds)
{
cmd(this);
}
if (objs[resargs[0]].status)
objs[resargs[0]].request(resargs);
else
{
pndgcmds.Add(
(myclass master) =>
{
if (master.objs[resargs[0]].status != true) return;
master.objs[resargs[0]].request(resargs);
//code to remove the delegate
});
}
}
これは、オブジェクトが応答できるかどうかをチェックし、応答できる場合は応答させます。そうでない場合は、コマンドをディクショナリに格納して、次に応答が呼び出されたときにステータスがチェックされて呼び出されるようにします。
2つの質問があります。
デリゲートを削除するコードを作成するにはどうすればよいですか?どうすればいいのかわかりません。
ご覧のとおり、デリゲートの内部動作の多くはメソッドパラメーターに依存しています。代理人はどのように行動しますか?
前もって感謝します!