首页 > 代码库 > 经验总结19--C#事件
经验总结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执行时,就会触发回调函数。