C#事件的调用

前言

说实话,这东西我在做这个东西之前只是单纯的用C#给出的事件,如Form_Load(),然后在事件中写方法,这玩意都是自己生成的,从没关心过这个事件是怎么调用的以及其背后的机制。

所以,现在先浅谈我对这个东西浅显的理解吧,欢迎各位大佬留言指正

我主要参考了这个链接点击打开链接

事件是什么

顾名思义,就是你想做的这件事发生前后与发生时所有的过程都可定义为事件,比如,我吃饭,就有开始吃饭,吃饭中,结束吃饭。。。。。。等等的事件

使用事件的相关知识

事件依赖的机制被称为发布-订阅机制,事件在一个类中声明且生成,且通过使用一个类或其他类中的委托与事件处理程序关联,包含事件的类用于发布事件

发布器(publisher):包含事件和委托定义的对象,事件和委托之间的联系也定义在这个对象之中,发布器调用这个事件并且通知其他对象

订阅器(subscribe):一个接受事件并且提供事件处理的对象,在发布器类中委托调用订阅器类中的方法

如何使用事件

(1)声明事件之前必须先声明该事件的委托类型

public delegate void BoilerHandler(string state)  //定义一个名为BolierHandler的委托

(2)声明事件本身

public event BoilerHandler Log;//定义一个基于BoilerHandler的事件Log

(3)发布器调用订阅器

publisher e = new publisher();

subscribe v = new subscribe ();

e.Log += new publisher.BoilerHandler(订阅器。方法);

这样做才能知道,e的Log是想干嘛,因为BoilerHandler中的事件可能很多,同时也将讲订阅器中的方法指向e的Log事件,这样就可以达到多对多的订阅。





猜你喜欢

转载自blog.csdn.net/echoerror/article/details/80817271