当前位置:首页 >> 每日看点 >> c# 事件和委托有些什么区别,求大神浅显易懂地解释一下?

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

卡卷网 每日看点 186

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

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

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

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

这不把人绕晕才怪!

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

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

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

词汇翻译:

[工作的类型]

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

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

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

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

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

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

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

[工作的接手和放下]

接手工作(AddHandler)

放下工作(RemoveHandler)

[事件和消息]

事件(Event) 事件

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

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

通告(RaiseEvent) 事件引发

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

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

词语选择:

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

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

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

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。
最新文章
热门文章
随机文章