定义:
委托(delegate)是一种存储函数引用的类型
委托是用户自定义的类,它定义了方法的类型。用来储存一系列具有相同参数列表和相同返回类型的方法地址列表,委托被调用时,委托列表中的所有方法都将被调用
可以把委托看成是用来执行方法的一个“指针”
委托是一个类型,用来指称所有形式相同的方法(返回值类型相同而且参数也相同)
作用:
1.相当于用方法作为另一方法参数(类似于C的函数指针)
委托的声明非常类似于函数,但不带函数体,且要使用delegate 关键字。委托的声明制定了一个返回类型和一个参数列表。
定义了委托后,就可以声明该委托类型的变量。接着把这个变量初始化为与委托具有相同返回类型和参数列表的函数引用。之后,就可以使用委托变量调用这个函数,就像该变量是一个函数一样。
有了引用函数的变量后,就可以执行无法用其他方式完成的操作。例如,可以把委托变量作为参数传递给一个函数,这样,该函数就可以使用委托调用它引用的任何函数,而且在运行之前不必知道调用的是哪个函数。
2.在两个不能直接调用的方法中作为桥梁,如:在多线程中的跨线程的方法调用就得用委托
3.当不知道方法具体实现什么时使用委托,如:事件中使用委托
用法:
1,委托可以绑定多个方法,支持+=(添加方法)和-=(取消方法)
窗体委托的用法:
this.Invoke(new Action(() =>
{
button.Text = "关闭";
}));