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