如何理解和实现c#事件

网上有很多关于事件是如何实现的,但看来看去都不是很明了。

有时候很多网站都转载相同的内容,千篇一律,所以自己打算好好研究一下这东东究竟如何实现。

Step 1 什么是事件

究竟什么是事件呢?想到事件,就让我想到911. 记得那段事件大家都在谈911事件。什么是911事件呢?就是飞机撞大楼这个动作导致了911事件的产生。但在c#中又如何理解呢。其实所谓事件,就是由某个对象发出的消息,这个消息标志着某个特定的行为发生了,或者某个特定的条件成立了。比如用户点击了鼠标,这一单击就会引起Windows给按钮消息处理程序发送一个消息,这就是OnClick事件。那个触发(raise)事件的对象称为事件的发送者(event sender),捕获并响应事件的对象称为事件的接收者(event receiver)。在winform里面,这个发送者就是我们单击的那个按钮,响应者或者叫接收者就是winform窗体。

下面就用winform和button来举例子

Step 2 定义button类

Button

 Step 3定义参数类

NewEventArgs

Step 4 定义WinForm类

WinForm

Step 5 运行测试

Test

 Step 6 小结

测试结果:

button

first button

button

second button

现在觉得event其实就这样,关键是理解委托的概念,这里的button1.Click += new OnClickEventHandler(btnClick);和button2.Click += new OnClickEventHandler(btnClick);其实就是委托实例而已。其次要了解事件sender对象和receiver之间的关系。

最后希望能和大家共同探讨技术问题。

参考:

http://www.csharphelp.com/archives/archive253.html

原文地址:https://www.cnblogs.com/matthew/p/1270671.html