今天復習了一下事件和委托,本來看事件來着,看到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 委托是專門表示事件的事件處理程序方法不生成數據的預定義的委托。很拗口的感覺!鏈接在此,自己看:
貼出按照微軟的例子照抄的代碼,加深一下印象:
真正的調用在這里:
到這里,基本就結束了,現在的理解只能達到這個程度了。