c#委托是什么?事件是不是一种委托?
2023-09-14 09:00:19 时间
C#的委托是CTS(公共类型系统)规定的5中类型之一(类类型、结构类型、接口类型、枚举类型、委托类型)。它类似于c或c++中的函数的指针,但函数指针只能引用静态方法,而委托既能引用静态方法,也能引用实例方法。委托是存在有对某个方法的引用的一种引用类型变量(也就是委托类型),引用可在运行是被修改。
C#的事件并不是委托的一种,在网上查了许多资料,许多人认为事件是一种特殊的委托,但是并非如此。事件(Event) 基本上可以说是一个用户操作,如按键、点击、鼠标移动等等,或者是一些系统生成的通知。事件使用的是发布和订阅的模型,也就是说声明事件的类为发布器,而需要对这个事件进行处理的类则为订阅器,那订阅器要怎么知道这个事件是否发生了呢?这个时候就用到了委托,委托负责告诉订阅器事件发生了,并告诉他要调用哪个方法,委托其实是发布器和订阅器之间的一个桥梁。
所以事件的实现依赖于委托,但事件并非是委托的一种。
相关文章
- C# 基础知识 (一).概念与思想篇
- c#使用XSLT将xml文档转换为html文档
- C#中种常用的计时器
- C#.NET常见问题(FAQ)-如何捕捉窗体关闭的事件,弹窗确认是否退出
- C# 如何修改Form不能修改窗体大小
- 重新整理数据结构与算法(c#)—— 图的深度遍历和广度遍历[十一]
- 【转】【UNITY3D 游戏开发之七】C# 中的委托、事件、匿名函数、LAMBDA 表达式
- C#.net word excel powerpoint (ppt) 转换成 pdf 文件
- C#中的AS、IS运算符与强制类型转换
- 【Android 逆向】ART 脱壳 ( dex2oat 脱壳 | /art/dex2oat/dex2oat.cc#Dex2oat 函数源码 )
- C#获取文件版本信息
- C#+无unsafe的非托管大数组(large unmanaged array in c# without 'unsafe' keyword)
- c# 当前不会命中断点 未载入该文档
- (56)C#里的协变(covariant)和逆变(contravariant)
- (52)C#里使用事件的例子
- 在C#主线程和子线程将数据传递给对方如何实现
- C#委托及事件
- C# 查询所有设备的插拔事件
- 彻底搞清楚c#中的委托和事件
- C#创建Windows窗体应用程序实例7【鼠标事件】
- 【番外】VS2015配置Halcon的C#环境---保姆式教程