夜隼

RYSZ

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

我对委托/事件的理解C#
当想实现下面这个功能的时候就可以用委托/事件,
有一个主程序,其中有一个看PPT文档的类,但是看PPT速度很慢,主程序继续运行,当PPT看完了之后

需要通知主程序,这时候就需要使用委托/事件。
--------------------------------------------------
在看PPT类中定义委托和事件,如
public delegate void ReadPPTEndEventHandler(参数,参数,参数);
public event ReadPPTEndEventHandler ReadPPTEndEvent; //再用上面的方法定义一个Event

假设PPT里面有一个Read()方法
pulibc void Read()
{
 //....若干代码
 //当读完了之后,这里需要调用ReadPPTEndEvent,其实就是调用主程序的一个方法,去通知

主程序
 if(ReadPPTEndEvent!=null)
 {
  this.ReadPPTEndEvent(参数,参数,参数);
 }
}
--------------------------------------------------
再看主程序代码,
主程序中肯定有一个和ReadPPTEndEventHandler(参数,参数,参数)参数一样的方法,假设叫做
Main_ReadPPTEndEvent(参数,参数,参数),注意:这里只需要参数对应就可以,方法随便!!
--------------------------------------------------
下面是开始调用

PPT.ReadPPTEndEvent += new PPT.ReadPPTEndEvent(Main_ReadPPTEndEvent);//这里声明,必须把主

程序的方法Main_ReadPPTEndEvent传入
PPT ppt = new PPT();
ppt.Read();

--------------------------------------------------
:)我的理解就是这样。。。。

posted on 2006-03-16 09:21  夜隼  阅读(349)  评论(0编辑  收藏  举报