事件和代理

事件和代理理解:

理解事件和代理主要分为两个方面:事件发布者和事件订阅者。他们分别负责的事情为:

一. 发布者:

1.  发布事件(即定义事件,并声明类型和方法)

2.  触发事件(即事件发布之后需要调用,对订阅者才有意义)

代理声明方法:

  [public/private] delegate <返回值类型> <代理名称>(<参数列表>);
  
  [public/private]:访问修饰符。
   delegate:代理声明关键定,相当于类声明的Class关键定
   <返回值类型>:代理所指向的方法的返回值类型
   <代理名称>:代理类型的名称
   <参数列表>:代理所的指向的方法的参数列表。
  
   要想使代理对象能够指向一个方法,那这个方法的要满足两个条件
   a.方法返回类型要与delegate声明中的“返回值类型”一致。
   b.方法的形参形表要与delegate声明中的“参数列表”一致。
   如:
   定义代理public delegate void MyDelegate();
 定义事件:public event MyDelegate CloseMainWindowEvent; 
  

二. 订阅者:

1. 注册事件(只有注册后,才能有反馈)

2.实现事件(即当发布者发布事件之后,订阅者收到消息所作的操作。)

   比如注册以上方法:

 定义实现事件:public void DoSomething();    //注意:实现事件应和定义代理方法类型参数一致
   注册事件:CloseMainWindowEvent +=new CloseMainWindowEvent(Dosomething);  //主意注册事件必须在定义事件中引用

 

posted @ 2013-11-08 17:42  Blackeye  阅读(159)  评论(0编辑  收藏  举报