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

C# 委派與事件機制實作範例 (2)

     編輯:關於C語言

事件驅動是 Windows 應用程式的核心特徵。C# 委派用於產生事件,事件則用於在元件中監聽該元件的變化。以下提供一個簡單完整的範例,示範自訂事件來源類別、委派定義、事件觸發與處理函式註冊的完整流程。

// 定義事件委派
public delegate void EventHandler(string str);

// 事件來源類別
class EventSource
{
    // 定義委派作為事件成員
    public event EventHandler Say;

    public void TriggerEvent()
    {
        if (this.Say != null)
            // 執行委派,實際操作由註冊的事件處理函式決定
            Say("A event take place!");
    }
}

// 測試類別
class Test
{
    public static void Main()
    {
        EventSource aEventSource = new EventSource();
        // 註冊事件處理函式,類似 this.Click += new EventHandler(Button1_OnClick);
        aEventSource.Say += new EventHandler(MyEvent);

        // 此處為示範由程式主動觸發事件
        // 在 GUI 應用中,通常由使用者操作觸發,OS 發送訊息再呼叫處理函式
        aEventSource.TriggerEvent();
    }

    // 事件處理函式
    public static void MyEvent(string str)
    {
        System.Console.WriteLine(str);
    }
}

關鍵點:

  • 委派定義了事件處理函式的簽章。
  • event 關鍵字限制委派只能在類別內部觸發,外部只能 +=/-= 註冊/移除。
  • 觸發前檢查 != null 避免無訂閱者時拋出例外。
  • GUI 程式中,事件通常由使用者互動觸發,開發者只需專註於註冊與撰寫處理邏輯。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved