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

C# 事件入門:基本觀念、Button Click 範例與郵件系統啟動

     編輯:關於C語言

事件基本觀念

事件是物件狀態變化時發出的通知。四大要素:

  1. 事件源:發出通知的物件
  2. 事件參數:攜帶訊息資料的類別(繼承 EventArgs)
  3. 事件處理器:符合委托簽名的方法
  4. 訂閱/取消訂閱:`+=` / `-=`

Button Click 經典範例


// 定義在 Framework 內部
public delegate void EventHandler(object sender, EventArgs e);
public event EventHandler Click;

// 使用端
button1.Click += Button1_Click; // 訂閱
private void Button1_Click(object sender, EventArgs e) { /* 處理 */ }

// 激發:使用者點擊滑鼠 -> Framework 內部呼叫 OnClick -> Click?.Invoke(this, EventArgs.Empty)

簡單自訂事件範例


public class MyText
{
    public event EventHandler Changed;
    private string _text;
    public string Text
    {
        get => _text;
        set
        {
            if (_text != value)
            {
                _text = value;
                Changed?.Invoke(this, EventArgs.Empty);
            }
        }
    }
}

// 使用
var mt = new MyText();
mt.Changed += (s, e) => Console.WriteLine("文字已變更");
mt.Text = "Hello"; // 觸發事件

郵件系統啟動:事件參數設計


public class MailMsgEventArgs : EventArgs
{
    public readonly string From, To, Subject, Body;
    public MailMsgEventArgs(string from, string to, string subject, string body)
    {
        From = from; To = to; Subject = subject; Body = body;
    }
}

接著建立 `MailManager`(事件源)、`Fax`/`CallPhone`(接收者)、用戶端組裝(見後續文章)。

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