永发信息网

C# 事件和委托的关系,我这么说对不对

答案:1  悬赏:0  手机版
解决时间 2021-02-25 00:34
C# 事件和委托的关系,我这么说对不对
最佳答案
似乎不对,当讨论事件与委托的关系,需要从两个方面展开,分别是用户角度和.NET内部底层。
1)用户角度:事件(event)是一个发布者,它起到的作用是通知事件订阅者要进行事件处理。但是事件发布者并不知道它的事件订阅者都有谁?此时,就需要一个中间人,而这个中间人正是委托(delegate)。所以当事件触发时就形成了一种委托机制:
事件发布者==》委托通知==》事件订阅者处理
2).NET内部底层:当用event关键字声明一个事件类型时,编译器在编译时会自动插入两个特殊的方法add_字段名和remove_字段名分别表示向委托链添加方法和移除方法。

个人看法,仅供参考。追问对于第一条
为什么不让这个委托人(对象)亲自发布事件?这样它就不需要委托别人,直接告诉它的订阅者。
因为delegate也是有+=,-=这样的操作的,所以我觉得它也是可以有"订阅者"的
C#的事件机制是否是仅仅为了符合人的思维模式?把事件的发布者和订阅者通过委托这种形式划分的更加鲜明?追答微软只所以这样设计,主要考虑到线程安全的,可以避免线程竞争问题,如果你直接使用delegate那么在多线程的模式下将处于不安全的状态。假设,有两个线程T1,T2,当T1线程对某方法从委托链中移除时,此时T2执行了该方法,你说会发生情况?追问nice
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
东泉浴池我想知道这个在什么地方
天气变冷了,如何让爱车保暖?
甲、乙两数的平均数是120,甲数与乙数的比值是
下列词语中划线的字,注音有错误的一组是A.恫
CCTV9英文频道怎么没了?想通过它学习下英语。
王者荣耀什么英雄好?花木兰张良猴子宫本哪个
朱泾工业园区地址有知道的么?有点事想过去
看了盲人大律师,现实生活中盲人真的可以当律
环境影响评价工程师登记有效期届满需要继续以
名字含义.彭芷妍这个女孩的名字的含义
34.一Will the fine weather-?一I am afraid
-1∧4÷(-5)²x(-5/3)+|0.8-1|
什么颜色光对眼睛不好
艺轩石材(132乡道)这个地址在什么地方,我要
注册税务师审核营业外支出税前扣除时,应当注
推荐资讯
华北电力大学北京如果大一结束转去国际教育学
减肥吃地瓜可以吗
新星源手机数码连锁坪石分店怎么去啊,有知道
理科生可以选择师范大学的什么专业?就业率怎
同方药业盛世家园店在哪里啊,我有事要去这个
为什么手机一锁屏就不提示QQ了
东北师范大学净月校区-高级公寓地址在哪,我
我国申奥成功用了几年
大师,什么是燃身,燃背,燃指
扫货什么意思
郑州市区哪里有乒乓球用品专卖店??
谁有在线分析仪招标文件范本?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?