- 委托
- 定義一個委托,聲明一個委托變量,然后讓變量去做方法應該做的事。
- 委托是一個類型
- 事件是委托變量實現的
- 經典例子:兩個winform窗體傳值
- 定義兩個窗體:form1和form2
- form1上有一個文本框,一個按鈕
- 點擊計算按鈕調出form2
- 點擊form2窗體按鈕返回結果20賦值給form1窗體文本框
- form1代碼如下:
-
//計算按鈕事件 private void Button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.f += F2_f; //注冊事件,只能+= f2.ShowDialog(); } private int F2_f(int arg) { textBox1.Text = arg.ToString(); return 1; }
- form2代碼如下:
-
public event Func<int, int> f; //聲明事件委托變量f,類型為int,返回值為int //form2按鈕事件 private void Button1_Click(object sender, EventArgs e) { //給form1窗體的文本框賦值20 if (f != null) { f(20); } }
- 完成
- 補充:因為此例子並沒有使用返回值,所以可以使用泛型委托Action<int>