Professional Documents
Culture Documents
事件與委派 (1)
事件是一種訊息傳遞機制,代表程式執行期間,正在發生的某種行為,例如按鈕被使用
者按下的動作,或是按下儲存按鈕所觸發的文件儲存動作,甚至在資料庫應用程式中,
移動資料庫記錄時,觸發的記錄移動事件等等,都是事件的實例。
要了解如何實作事件,首先必須認識一種特殊型別,委派(Delete), C# 透過委派實作事
件機制,除此之外,委派亦廣泛的應用在遠端呼叫與資料封送技術。
事件通常由某個特定的物件產生,並且由其他物件或方法接收並且進一步作處理,委派
類別本身則用以參考特定的方法,於事件觸發時引用其參考的方法處理被觸發的事件。
應用程式藉由所定義的方法執行某種運算,完成特定的工作,而委派本身則是一種能夠
參考特定方法的型別,因此,你可以透過委派執行所參考的方法,委派與方法的關係說
明下圖 :
從圖中你可以很清楚的了解委派的運作機制,它直接參考了某個特定的方法,並且在應
用程式需要的時候執行。
宣告所建立的委派型別,其回傳值以及參數列與往後所參考的方法,必須全完符合,這
種限制是可以理解的,當委派物件被使用於方法的叫用,我們所直接面對的是委派物件,
因此必須能夠符合叫用方法的型態,完成預期的行為。
一旦完成委派宣告,接下來只需建立委派型別物件,並且指定其參考的方法,最後直接
將此委派物件當作其參考的方法來使用即可。
範例
示範如何定義一個標準的委派型別,並且利用委派型別的實體物件,引用指定的方法,
分別計算正方形與圓形面積。
01 class UsingDelegates
02 {
04 {
09 Console.WriteLine
011 myDelegate1(length1).ToString());
012 Console.WriteLine
014 myDelegate2(length2).ToString());
015 Console.ReadLine();
2
3
016 }
017 }
020 {
022 {
026 }
028 {
032 }
033 }
完成委派類別的方法設定,接下來透過委派物件引用所參照的方法,進行指定的運算。
執行結果
4
事件與委派 (1)
邊長 10 的正方形面積為 : 100
半徑 15 的圓形面積為 : 10602.8752058656
經由上述範例,我們體驗了委派的相關實作,你現在應該可以輕易的透過委派封裝特定
方法,然後對其進行引用。
儘管直接引用方法成員,同樣可以完述上述的功能,然而委派對於方法的引用,提供了
更大的彈性,你可以透過同一個委派物件,於執行時期動態指定所要執行的方法成員。
下一篇事件與委派(2),我們提供更進一步的範例說明動態指定方法的技巧。