之前學過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執行時,就會觸發回調函數。