我有这个方法:
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
});
}
}
它检查对象是否能够响应,如果能够响应,则使其响应,否则将命令存储在字典中,以便在下次调用响应时检查并调用状态。
我有两个问题。
如何编写代码来删除委托?我不知道该怎么做。
如您所见,委托的大部分内部工作依赖于方法参数。代表将如何表现?
提前致谢!