程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#委托和事件詳解(4)

C#委托和事件詳解(4)

編輯:關於C語言

看到這裡,應該注意到,這段代碼第一條語句與實例化一個類是何其的相似,你不禁想到:上面第一次綁定委托時不可以使用“+=”的編譯錯誤,或許可以用這樣的方法來避免:

以下是引用片段:

GreetingDelegate delegate1 = new GreetingDelegate();
delegate1 += EnglishGreeting; // 這次用的是 “+=”,綁定語法。
delegate1 += ChineseGreeting; // 給此委托變量再綁定一個方法

但實際上,這樣會出現編譯錯誤: “GreetingDelegate”方法沒有采用“0”個參數的重載。盡管這樣的結果讓我們覺得有點沮喪,但是編譯的提示:“沒有0個參數的重載”再次讓我們聯想到了類的構造函數。我知道你一定按捺不住想探個究竟,但再此之前,我們需要先把基礎知識和應用介紹完。

既然給委托可以綁定一個方法,那麼也應該有辦法取消對方法的綁定,很容易想到,這個語法是“-=”:

以下是引用片段:

static void Main(string[] args) {
GreetingDelegate delegate1 = new GreetingDelegate(EnglishGreeting);
delegate1 += ChineseGreeting; // 給此委托變量再綁定一個方法
// 將先後調用 EnglishGreeting 與 ChineseGreeting 方法
GreetPeople("Jimmy Zhang", delegate1);
Console.WriteLine();

輸出為:

Morning, Jimmy Zhang

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved