- 委托
- 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事。
- 委托是一个类型
- 事件是委托变量实现的
- 经典例子:两个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>
转载于:https://www.cnblogs.com/micc/p/10673328.html