首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 委托與事件詳解(一)

     編輯:關於C語言

委托與事件在 .NET 應用極廣,但初學者常感困惑。本文透過兩個範例由淺入深講解:委托定義、為何使用、事件由來、.NET 中的委托事件、Observer 模式意義,並探討中間代碼。

將方法作為方法的參數

最簡單的問候方法:

public void GreetPeople(string name) {
    EnglishGreeting(name);
}
public void EnglishGreeting(string name) {
    Console.WriteLine("Morning, " + name);
}

傳入 "Jimmy" 會輸出 "Morning, Jimmy"。現需全球化支援中文:

public void ChineseGreeting(string name) {
    Console.WriteLine("早上好, " + name);
}

GreetPeople 需判斷用哪版本,引入枚舉:

public enum Language { English, Chinese }
public void GreetPeople(string name, Language lang) {
    switch(lang) {
        case Language.English: EnglishGreeting(name); break;
        case Language.Chinese: ChineseGreeting(name); break;
    }
}

雖解決問題,但擴展性極差:新增日文、韓文需修改枚舉與 GreetPeople,違反開放封閉原則。這正是委托登場的動機。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved