博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#事件委托概念
阅读量:6614 次
发布时间:2019-06-24

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

事件就是一个狭义的委托,也就是事件是一个用于事件驱动模型的专用委托.

通俗的讲,委托你可以在客户代码中直接调用委托来激发委托指向的函数,而事件不可以,事件的触发只能由服务代码自己触发
也就是说在你的代码里委托你不但可以安排谁是它的调用函数,还可以直接调用它,而事件不能直接调用,只能通过某些操作触发
你可以理解事件就是一个或多个委托,此话应该有误的吧,事件可以有多个事件处理函数,委托同样也可以是个多播委托

委托的本质是引用类型,用于包装回调函数,委托用于实现回调机制;事件的本质是委托,事件是回调机制的一种应用。

为什么要用委托

  使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与C或C++中的函数指针不同,委托是面向对象,而且是类型安全的。

 

/*道事件委托面试题 - 猫叫老鼠跑主人醒*/ using System; namespace CatCry{    class MainClass    {        static void Main(string[] args)        {            Cat cat = new Cat();           // cat.OnMew += People.Wake;            cat.Mew();        }    }} public class Cat{    public delegate void EventMiao();    public event EventMiao OnMew;           public void Mew()    {        Console.WriteLine("miao....");        OnMew += People.Wake;        OnMew += Mouse.Run;        OnMew();    }} public class People{    public static void Wake()    {        Console.WriteLine("人醒!");    }} public class Mouse{    public static void Run()    {        Console.WriteLine("老鼠跑掉了!");    }}

 

转载地址:http://taaso.baihongyu.com/

你可能感兴趣的文章
运营商2015年运营成绩单:中国移动发足狂奔
查看>>
韩国:高通涉嫌垄断 拟罚59亿元创纪录
查看>>
OA选型有哪些易忽略的细节
查看>>
光纤布线系统如何打造绿色数据中心?
查看>>
一家以色列公司要帮FBI解锁iPhone
查看>>
IT企业的云存储安全方法都是错的
查看>>
英特尔进军穿戴和物联网 RealSense技术成标配
查看>>
比特币等公有链不适合物联网行业?物联网需要专用区块链
查看>>
Worktile企业版上线 满足互联网时代的办公新需求
查看>>
RSA加密或成历史 麻省理工研制出5原子量子计算机
查看>>
致所有测试人员的信
查看>>
Microsoft将在VS 2017中提供“实时单元测试”特性
查看>>
印度有望挤下日本 成2017年全球第三大光伏市场
查看>>
自动化测试如何解决验证码的问题
查看>>
大数据让景区更智慧
查看>>
希腊央行网站成黑客“盘中餐”:上了头条才猛醒
查看>>
储能式UPS在数据中心的应用探讨
查看>>
最新EMC全球调查凸显网络威胁影响
查看>>
如何用Tensorflow实现RNN?本文将带你进一步研究
查看>>
想去英国 因为他们是移动连接速度之王
查看>>