如何在不实例化委托的情况下将方法添加到委托的调用列表中?

时间:2016-12-16 19:01:27

标签: c# delegates instantiation

我必须在委托的调用列表中添加多个方法。但是,它们都具有与之相关的决策逻辑。因此,在方法附加到委托的调用列表之前,有一个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参数的构造函数”错误的编译器错误。

如果其他人有更好的方法,我也会以不同的方式解决这个问题。但是,必须使用代表。

感谢您的帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

您只需将其初始化为/etc/hosts即可。这是多播代理的惯用价值,它没有添加任何操作。