輸出雙語問候。委托總結:委托是類,定義方法類型,讓方法可作參數傳遞,避免大量 if-else/switch,提升擴展性。
委托變量用法類似 string:
static void Main() {
GreetingDelegate delegate1, delegate2;
delegate1 = EnglishGreeting;
delegate2 = ChineseGreeting;
GreetPeople("Jimmy Zhang", delegate1);
GreetPeople("張子陽", delegate2);
}
委托特有特性:多個方法可綁定同一委托,調用時依序執行:
static void Main() {
GreetingDelegate delegate1;
delegate1 = EnglishGreeting; // 首次賦值用 =
delegate1 += ChineseGreeting; // 後續綁定用 +=
GreetPeople("Jimmy Zhang", delegate1);
}
輸出雙語問候 "Jimmy Zhang"。也可繞過 GreetPeople 直接調用委托:
delegate1("Jimmy Zhang");
注意:首次必須用 =,直接用 += 會報「使用未賦值變量」錯誤。簡化寫法:
GreetingDelegate delegate1 = new GreetingDelegate(EnglishGreeting);
delegate1 += ChineseGreeting;