随笔 - 130  文章 - 1  评论 - 16  阅读 - 12万 

      今天复习了一下事件和委托,本来看事件来着,看到EventHandler,写了一个小例子,想贴在这里解释一下。为了弄清楚EventHandler,

还是回归到最基本的委托,曾经在园子里看到一位前辈用深入浅出的语言写了委托,有些印象,收藏了,链接是:http://www.cnblogs.com/xcj26/p/3536082.html#2882421

      非常羡慕他对抽象概念的清晰有条理的描述,把委托的定义和使用分一二三写出来,非常地直白。

     step1:首先用delegate定义一个委托 。

     step2:声明一个方法来对应委托。

     step3:用这个方法来实例化这个委托。

     step4:调用委托。(自己加的)

    按照这个步骤我自己写一个简单的例子:

  

复制代码
 1 class Program
 2 {
 3     //step1  定义委托
 4     public  delegate void ShowCity(string cityName);
 5  
 6    //step2  声明与委托对应的方法
 7    public static ShowCityFunction(cityName)
 8    {
 9        Console.WriteLine(cityName);
10     }
11 
12 
13     static void Main()
14      {
15          //step3  实例化委托
16      ShowCity show=new ShowCity(ShowCityFunction);
17 
18           //step4  实例化委托
19       show.Invoke("su zhou");
20           show("shang hai");  // 两种调用方式的效果一样
21 
22      Console.ReadLine();
23 
24      }
25 
26 }
View Code
复制代码

 上面有个笔误,不影响理解。下面按照上面的4个步骤来理解EventHandler,先给出EventHandler的官方定义:

    EventHandler 委托是专门表示事件的事件处理程序方法不生成数据的预定义的委托。很拗口的感觉!链接在此,自己看:

    http://msdn.microsoft.com/zh-cn/library/system.eventhandler(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

   贴出按照微软的例子照抄的代码,加深一下印象:

       

 

 

        真正的调用在这里:

       

 

 

    到这里,基本就结束了,现在的理解只能达到这个程度了。

 

   

 

posted on   水语者9  阅读(11170)  评论(1编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示