C#中的委托(delegate)与事件(event)
一、委托就是中间人的意思,c#中的委托允许将一个类中的方法传递给另一个能调用该方法的类的某个对象。程序员可以将A类的一个方法m(被包含在某个delegate中了)传递给另 一个类B,这样类B就能调用类A中的方法m了。
二、定义和使用委托分为三步:声明,实例化,调用
- 声明一个delegate,其参数一定要和要包含的方法的参数类型形式(数量,类型)一致
声明格式:
delegate 数据类型 委托类型名(参数列表)
- 定义所调用的方法,其参数形式和第一步中声明的委托类型的参数形式必须一致
- 定义一个委托类型的实例变量(委托对象),让该变量指向某个要调用的具体方法
格式如下:
委托类型名 委托对象名 = new委托类型名(要调用的方法名);
- 通过委托对象,调用委托类型变量指向的方法
委托对象名(实参列表);
三、一个委托对象可以同时调用多个方法,这些方法的集合称为调用列表。
委托使用(“+” “—” “+=” “—=”)等运算符向调用列表中增加或移除方法
例:
结果如下: