經驗總結19--C#事件

之前學過C#事件,不過一直沒搞懂怎麼弄。

這一次又研究了下。

1、定義一個參數類,用於事件的傳參。(可省略)

    public class UserEventArgs
    {
        public User user { get; set; }
    }

2、編寫需要執行事件的類。

 public class UserTask
    {
        public delegate void UserHandler(object sender, UserEventArgs e);//聲明委託
        public event UserHandler handler;//把委託給事件

public void Submit()//觸發事件的方法
        {
            OnEvent(new UserEventArgs (this));//傳參,觸發事件
        }

        public virtual void OnEvent(UserEventArgs e)
        {
            if (handler != null)
                handler(this, e);//回調,去調用需要執行的函數
        }

}

3、觸發事件。

UserTask ut=new UserTask();

ut.handler+=new UserTask.UserHandler(CallbackMethod);//需要執行的方法

ut.Submit();//執行方法

public void(object sender, UserEventArgs e){}//接收參數,執行其他操作。


最後,事件就是主動去提交回調,然後調用使用該事件的方法。只要Submit執行時,就會觸發回調函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章