卡卷网
当前位置:卡卷网 / 每日看点 / 正文

c# 事件和委托有些什么区别,求大神浅显易懂地解释一下?

作者:卡卷网发布时间:2025-01-20 23:21浏览数量:160次评论数量:0次

delegate难以理解就是翻译的锅。

翻译成“委托”,就变成了下面这个样子:

委托人创建委托并将委托委托给了委托对象

事件引发对象引发事件并将事件消息传达给了事件处理对象

这不把人绕晕才怪!

如果把delegate翻译成[工作],采用我下面这套翻译,就很通俗易懂了:

委托人创建工作并将工作移交给处事专员

线人通告了一个事件并将相关情报传达给了处事专员

词汇翻译:

[工作的类型]

工作(Delegate) 为完成特定任务安排的工作,翻译成任务也行。

需写报告的工作(Func<T>)

不必报告的工作(Action<T>)

Delegate 是封装一系列算法和动作的实体。

算法(Function) 赋予参数输入进去,给予一个结果出来的函数。

动作(Method) 可以被做的一个动作。

〔「方法」不合适,因为方法在汉语中既不能被 Do 做也不能被 Invoke 执行。〕

[工作的接手和放下]

接手工作(AddHandler)

放下工作(RemoveHandler)

[事件和消息]

事件(Event) 事件

情报(EventArgs) 事件消息,又名信号

处事专员(EventHandler) 专职负责事件处理的

通告(RaiseEvent) 事件引发

线人(RaiseEventObject) 事件引发对象,又名有关人员、目击者

==============

词语选择:

为什么用事件[通告]而不是事件[报告],因为[通告]这个词能更好的表示事件和Delegate的广播性质。

报告]的意思是向上级回复工作情况,所以和函数返回值有关的场景我用[报告]。

还有一个词是[汇报],有汇整总结的意思,这个词更适合用来翻译进行处理后再返回结果的相关动作。

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码