代表和事件之间有什么区别?
时间:2020-03-05 18:43:34 来源:igfitidea点击:
代表和事件之间有什么区别?两者都不持有对可以执行的功能的引用吗?
解决方案
回答
事件声明在委托实例上添加了一层抽象和保护。此保护可防止委托的客户端重置委托及其调用列表,并且仅允许在调用列表中添加或者删除目标。
回答
除了语法和操作属性外,还存在语义上的差异。
从概念上讲,代表是功能模板。也就是说,他们表示必须履行职能的合同,才能被视为代表的"类型"。
事件代表……嗯,事件。它们旨在在某事发生时向某人发出警报,是的,他们遵循委托定义,但是它们不是同一件事。
即使它们是完全相同的东西(在语法上和IL代码中),仍将保留语义上的差异。通常,我喜欢为两个不同的概念使用两个不同的名称,即使它们以相同的方式实现(这并不意味着我希望两次拥有相同的代码)。
回答
我们还可以在接口声明中使用事件,对于委托则不能。