今天看到了Delegate.Combine靜態方法,就隨手測試了下。
本以爲只要是參數和返回類型相同的 就可以了,如下所示
Delegate d3 = Delegate.Combine(
new
text1
(method1),
new
text2(method2));
結果報錯, “委託必須具有相同的類型。”
將兩個參數都改爲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);
}
相當於事件的+=方法。