C# 的委托与事件
来源:互联网 发布:c语言循环代码 编辑:程序博客网 时间:2024/05/21 18:30
C#中的委托与事件
今天开始学C#中的委托与事件了,感觉好难。虽然之前学校学过函数指针的东东,但是还是很吃力,不知道到底该怎么理解,怎么用。上面的文章对我帮助很大。膜拜大神!
++++++++++++++++++++++++++++++我是分割线+++++++++++++++++++++++++
昨天太草率了,没有讲自己的理解。今天补上。
首先了解事件的由来:
事件的前身是消息(Message)。Windows是消息驱动的操作系统,运行其上的程序也遵照这个机制执行。消息本身就是一条数据,这条数据里记载着消息的类别,必要时还记载着一些消息参数。比如,当你在窗口上点击了鼠标的左键,一条名为WM_LBUTTONDOWM的消息就生成了,并被加入到Windows待处理的消息队列中——大部分情况下Windows的消息队列不会有太多的消息在排队,消息会被立刻处理。如果你的计算机很慢并且处在很忙的状态(如播放些什么微电影啊),那么这条消息就要等待一会才会被处理到,这就是常见的操作系统反应延迟。当Windows处理到这条消息时会把消息发给你单击的窗体。窗体会用自己的一套算法来响应这个消息,这个算法就是Windows API开发中常说的消息处理函数。消息处理函数中有一个多级嵌套的switch结构,进入这个switch结构的消息会被分门别类并最终流入某个末端分支,在这个分支里会有一个程序员编写的函数被调用。 ————摘自《深入浅出WPF》刘铁猛
而事件的定义为
event ;
定义表明事件实际上就是一个使用event关键字修饰的委托类型成员变量,事件处理器则是一个函数。说A订阅了B的事件,本质上就是让B.Event与A.EventHandler关联起来。所谓事件激发就是B.Event被调用,这是与其关联的A.EventHandler就会被调用。 ————摘自,同上
个人理解:委托只是声明了一个函数指针,声明了一种新的类型,之说以需要委托,是因为需要一种类型来表示事件。
而事件才是真正实现消息的。其中有发布器和订阅器,发布器是用来触发事件的,而订阅器是用来处理发生时间后,与之关联过后的对象的表现,或者一些状态的改变。
- c#的委托与事件
- C#的委托与事件
- C#的委托与事件
- C# 的委托与事件
- C# 事件,委托与事件的区别
- c# 委托与事件
- C#委托与事件
- C# 委托与事件
- c#委托与事件
- C# - 委托与事件
- C#委托与事件
- C# 委托与事件
- C#委托与事件
- c#委托与事件
- C#事件与委托
- C# 事件与委托
- C#事件与委托
- c#委托与事件
- 初学算法导论第一章节
- php 七牛 图片拼接+裁剪
- 【arduino】RosBot电机扩展板介绍
- 如何利用winhex处理磁盘未格式化
- 算法训练 s01串
- C# 的委托与事件
- 自顶向下,逐步求精
- CentOS下(rsync+crontab)触发式实现服务器间的文件备份同步
- QTextStream读取文件内容
- ElasticSearch Java分组查询
- springboot集成JestClient连接elasticsearch-5.x
- CentSo7 linux安装svn
- numpy一些常用函数小结
- Coredata使用