委托實例化語法與類相似。嘗試用 new GreetingDelegate() 避免首次綁定不能用 += 的錯誤:
GreetingDelegate delegate1 = new GreetingDelegate();
delegate1 += EnglishGreeting;
delegate1 += ChineseGreeting;
但報錯:GreetingDelegate 無無參構造函數。編譯提示暗示委托有帶參數的構造函數。
解除綁定用 -=:
static void Main() {
GreetingDelegate delegate1 = new GreetingDelegate(EnglishGreeting);
delegate1 += ChineseGreeting;
GreetPeople("Jimmy Zhang", delegate1);
Console.WriteLine();
delegate1 -= EnglishGreeting;
GreetPeople("Jimmy Zhang", delegate1); // 僅調用 ChineseGreeting
}
輸出先雙語,後僅中文。委托支援動態增減方法,構建靈活的調用鏈。