在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
事件 事件是C#中另一高级概念,使用方法和委托相关。奥运会参加百米的田径运动员听到枪声,比赛立即进行。其中枪声是事件,而运动员比赛就是这个事件发生后的动作。不参加该项比赛的人对枪声没有反应。 从程序员的角度分析,当裁判员枪声响起,发生了一个事件,裁判员通知该事件发生,参加比赛的运动员仔细听枪声是否发生。运动员是该事件的订阅者,没有参赛的人不会注意,即没有订阅该事件。 C#中使用事件需要的步骤: 一、定义事件 定义事件时,发生者首先要定义委托,然后根据委托定义事件。定义事件的语法如下: <访问修饰符> event 委托名 事件名; 定义事件时,一定要有一个委托类型,用这个委托类型来定义处理事件的方法类型。下面定义一个发布者类,并在其内部定义eventRun事件。 class Judgment { //定义一个委托 public delegate void delegateRun(); //定义一个事件 public event delegateRun eventRun; } 二、订阅事件 定义好事件后,与事件有关的人会订阅事件,只有订阅事件的对象才会收到发生事件的通知,没有订阅该事件的对象则不会收到通知。订阅事件的语法如下: 事件名+=new 委托名(方法名); 假如方法名为Run,那么订阅事件eventRun的代码如下: judgment.eventRun+=new Judgment.delegateRun(runsport.Run); judgment为类Judgment的对象,runsport为运动员类RunSports的对象,Run为其中的方法。 事件的订阅通过“+=”操作符来实现,可以给事件加一个或多个方法委托。
事件的完整调用使用代码
class MyClass //定一个订阅者的类
//定义一个事件
class Swim//定义一个发布者
|
请发表评论