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的广播性质。
[报告]的意思是向上级回复工作情况,所以和函数返回值有关的场景我用[报告]。
还有一个词是[汇报],有汇整总结的意思,这个词更适合用来翻译进行处理后再返回结果的相关动作。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
相关推荐

你 发表评论:
欢迎