今天复习了一下事件和委托,本来看事件来着,看到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 }
上面有个笔误,不影响理解。下面按照上面的4个步骤来理解EventHandler,先给出EventHandler的官方定义:
EventHandler 委托是专门表示事件的事件处理程序方法不生成数据的预定义的委托。很拗口的感觉!链接在此,自己看:
贴出按照微软的例子照抄的代码,加深一下印象:
真正的调用在这里:
到这里,基本就结束了,现在的理解只能达到这个程度了。