本站首页    管理页面    写新日志    退出


 

 

 


最新日志

练车
今天是2011年07月02号
温馨
CInternetSession 类
CHttpFile实现Get/Post
在MFC中加一个控制台DOS界面
strtol 函数
outputParam
有关CTime和ColeDateTime
variant_t ,_bstr_t 与

 


 

最近的评论

回复:CHttpFile实现Get/Po
回复:好久没有来了
回复:参数自整定的模糊PID
回复:电子设计大赛自由命题可参考的题目
回复:数字万用表使用方法
回复:公交车上巨搞笑的一幕
回复:电子设计大赛自由命题可参考的题目
回复:电子设计大赛自由命题可参考的题目
回复:电子设计大赛自由命题可参考的题目
回复:暑假回来

 


 

连接




    

事件的本质
sccwqiang 发表于 2008-3-18 15:35:51

                事件的本质小结 using System; class A1{ public delegate void publisher(); public event publisher OnPublish;//其实ONPUBLISH 就是一个委托  public void touchMethod() {  if(null!=OnPublish)  {   OnPublish();  }  else   Console.WriteLine("委托链中没有找到合适的事件方法"); }  public void firstMethod() {  Console.WriteLine("我是第一个事件执行的方法"); } public void secondMethod() {  Console.WriteLine("我是第二个事件执行的方法"); } public void threeMethod() {  Console.WriteLine("我是第三个事件执行的方法"); }  }class test{ static void Main() {  A1 a=new A1();  a.OnPublish +=a.firstMethod;//事件其实是委托类的一个实例,只是触发方法不能在类  a.OnPublish+=a.secondMethod;//外进行而矣,这也是他和委托真正对象的区别  a.OnPublish+=a.threeMethod;  a.touchMethod();  Console.ReadKey();  Console.WriteLine();    A1.publisher publisherDelegate=null;//定义一个委托,其实定义了一个委托类(即委托名表示该类),而且是一静态的  publisherDelegate+=a.firstMethod;   //如果定义在类中即为该类的一个静态成员  publisherDelegate+=a.secondMethod;  publisherDelegate();  Console.ReadKey(); }} 小结:(1)delegate void TheDelegate(参数1)其实这句定义了一个TheDelegate委托类{注意:不是委托实例对象}.而且"参数1"就是触发事件时的,对事件响应函数的参数. (2)public event TheDelegate XXXX;////XXXX是事件对象--本质是委托的实例.从另一个角度看,XXXX是委托或者说是委托链.因为假如   定义了一个 public TheDelegate YYYY;这个标准的委托实例对象可以这样被初始化YYYYY=XXXXX证明了这一点;(3)接(2)XXXX和YYYYY的区别:XXXX只能在发行事件中进行触发,格式:XXXX(参数1)----要和响应事件方法一样.这样安全性更高.(4)定义了一个委托而得到的"委托类",是一个静态的.可以出现在类能够出现的地方.如:class A{TheDelegate}; 调用时.A.TeDelegate因为是A的成员.但其实例对象不是静态的;调用, A a=new A();a.YYYYY;  (5)采用.NET FRAMEWORK中的标准public delegate void TheDelegateEventHandler(object sender,EventArgs(子类) e);  

阅读全文(1301) | 回复(0) | 编辑 | 精华


发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 

 

 


站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.016 second(s), page refreshed 144335310 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号