0
我必须将多个方法添加到委托的调用列表中。但是,他们都有与之相关的决策逻辑。因此,在方法连接到委托的调用列表之前有一个if块。我可以在不实例化委托的情况下做到这一点。代码片段如下所示:如何在不实例化委托的情况下将方法添加到委托的调用列表中?
public delegate void SomeDelegate();
static void Method1() {}
static void Method2() {}
static void AddMethodsToInvocationList()
{
SomeDelegate someDelegate = new SomeDelegate();
if (someLogic1) someDelegate += Method1;
if (someLogic2) someDelegate += Method2;
}
基本上,我希望能够不经过任何方法作为参数来创建委托的实例。不过,如果我尝试实例化委托而不传递任何方法作为参数,则会出现“不包含带0参数的构造函数”错误的编译器错误。
如果其他人有更好的方法来解决这个问题,我也会开放。但是,必须使用代表。
谢谢你的帮助。非常感激。
传递null给我一个“方法名称预期”编译器红色波浪状。 –
@SaikatDas您可以在每种语言版本中将'null'赋值给任何委托变量。你显然并没有真的把'null'分配给变量,而是做了别的事情。 – Servy
是的,这解决了我的问题。我已经将null传递给初始值设定项。但是,你的意思是将null分配给正在声明的变量。谢谢。 –