EventHandler委托的使用

来源:博客园 分类: 文章浏览史 发布时间:2020-07-31 18:54:42 最后更新:2020-07-31 浏览:332
转载声明:
本文为摘录自“博客园”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2020-07-31 18:54:42

      今天复习了一下事件和委托,本来看事件来着,看到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

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

       

 

 

        真正的调用在这里:

       

 

 

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

 

   

 

php技术微信