博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对C#中事件的简单理解
阅读量:5172 次
发布时间:2019-06-13

本文共 1966 字,大约阅读时间需要 6 分钟。

对于C#中的事件,我举了个简单的例子来理解事件及其处理。

这个例子中母亲是事件的发布者,事件是吃饭了。儿子和父亲是事件的订阅者,各自的Eat方法是处理事件的方法。

下面是详细的加注的例子:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.IO; 7  8  9 /* C#中处理事件采用发布-订阅模型(publisher-subscriber model)10  * 包含委托和事件申明的类是发布器11  * 包含事件处理的类是订阅器12  * 13  * C#中申明事件以及事件处理的步骤:14  * 1.定义委托和其相关联的事件15  * 2.在发布器中写触发事件的条件(方法、其他事件等)16  * 3.在订阅器中写处理事件的方法程序17  * 4.将事件订阅处理事件的程序,格式是: 
<事件>
+= new
<与事件关联的委托>
(
<处理事件的方法名>
) 18 */19 namespace CsharpStudy20 {21 //定义一个“母亲”类,是发布器22 class Mum {23 //与事件关联的委托的定义24 public delegate void mydelegate();25 //事件的定义26 public event mydelegate EatEvent;27 28 public void Cook() {29 Console.WriteLine("母亲:我饭做好了,快来吃饭了...");30 //触发事件31 EatEvent();32 }33 34 }35 36 //定义一个“儿子”类,是订阅器37 class Son {38 //事件处理方法39 public void Eat() {40 Console.WriteLine("儿子:好,等会,妈,我玩完这局再吃...");41 }42 }43 44 //定义一个“父亲”类,是订阅器45 class Father {46 //事件处理方法47 public void Eat() {48 Console.WriteLine("父亲:好,老婆,我来吃饭了...");49 }50 }51 52 53 //主程序类54 class Program55 {56 //程序入口57 static void Main(string[] args)58 {59 /************Main function***************/60 //实例化三个类61 Mum mun = new Mum();62 Father father = new Father();63 Son son = new Son();64 65 //事件订阅方法(订阅son和father的Eat方法)66 mun.EatEvent += new Mum.mydelegate(son.Eat);67 mun.EatEvent += new Mum.mydelegate(father.Eat);68 69 mun.Cook();70 71 72 /****************************************/73 74 Console.ReadKey();75 }76 }77 78 79 }

 

虽然这个例子比较简单,但是能够最粗糙的对事件的发布-订阅模型有个最直观的理解。

转载于:https://www.cnblogs.com/jeavenwong/p/8535758.html

你可能感兴趣的文章
C# 除法的细节
查看>>
C#显示及隐藏任务栏
查看>>
CentOS7 设置局域网固定IP
查看>>
windows相关cmd命令
查看>>
后短信集成时代
查看>>
javascript有用小功能总结(未完待续)
查看>>
docker中使用mysql数据库详解(在局域网访问)
查看>>
java定时器demo
查看>>
pipeline常用插件用法
查看>>
JS实现密码加密
查看>>
卓越年华家具有限公司介绍
查看>>
2016-03-30
查看>>
Python的语言类型
查看>>
l-oc-9
查看>>
angular.js (五)
查看>>
【转】网络制图法(Internet Cartography)
查看>>
Oracle网络TNS协议的几个基础类描述(revised)
查看>>
shell编程笔记
查看>>
Winform打砖块游戏制作step by step第三节---移动挡板
查看>>
hdu3999-The order of a Tree (二叉树的先序遍历)...
查看>>