天天看點

Delegate.Combine

今天看到了Delegate.Combine靜态方法,就随手測試了下。

本以為隻要是參數和傳回類型相同的 就可以了,如下所示

<code>Delegate d3 = Delegate.Combine(</code><code>new</code><code>text1</code><code>(method1),</code><code>new</code><code>text2(method2));</code>

結果報錯, “委托必須具有相同的類型。”

将兩個參數都改為text1後運作正常,

public delegate void text1();

public delegate void text2();

public void method1() { MessageBox.Show("m1"); }

public void method2() { MessageBox.Show("m2"); }

private void button2_Click(object sender, EventArgs e)

{Delegate d3 = Delegate.Combine(new text1(method1), new text1(method2));

this.Invoke(d3);

 }

相當于事件的+=方法。