前言
Event事件机制是C#的重要特性,它可以实现诸如点击功能,多线程应用等多个场景中。
一、Event是什么?
Event本质是基于delegate实现的,是delegate 的一种实现。采用订阅者/发布者机制,订阅者即事件接收方,发布者为事件发布方。事件定义在发布者中,当发布者调用某种方法时,事件即触发,订阅者收到被触发事件,即调用相应方法。
二、Event定义
1. .Net 提供的定义EventHandler
代码如下(示例):
public delegate void EventHandler<TEventArgs>(object? sender, TEventArgs e);
以上定义是.Net提供的,可以直接在自己的代码中使用。之前已经说过事件是基于delegate实现的,这里可以看到定义了一个名为EventHandler的委托。这里要讲解一下EventArgs类,这个类是包含事件需要的数据信息的。它可以被自定义类继承。TEventArgs即泛型,代表用户的EventArgs继承子类,sender 是发布者,一般为this.
然后定义event
public event EventHandler<TEventArgs> eventHandler;
事件定义后,eventHandler就可以在任何时候调用
eventHandler.Invoke(this, new TEventArgs)
2.自定义委托
.Net也支持自定义事件委托,这里我们定义一个没有参数的委托
代码如下(示例):
public delegate void CallEventHandler();
然后定义event
public event CallEventHandler Call;
三、事件绑定
将订阅者方法绑定到事件即完成。
Call+=User.Method();
1252



被折叠的 条评论
为什么被折叠?



