.net - 为什么事件在 .NET 中没有返回类型?

标签 .net events

事件也“做”类似方法的事情,但它们没有返回类型而只有空值?

我很想知道,为什么会这样?为什么他们不返回类型?

最佳答案

因为事件可以由多个监听器处理。事件处理程序的顺序没有保证(尽管我认为它们是按照实际订阅的顺序调用的。)

相反,对于想要“返回”某些数据的事件,约定是有一个可变的 EventArgs 对象,例如 CancelEventArgs,它可以将其 Cancel 属性设置为 true。与返回值相比,此方法的优点是链中的事件处理程序可以查看该属性以查看其他处理程序是否已经设置了它。但是您仍然会遇到最后一个设置属性的人获胜的情况。

如果它是一个返回值,整个概念就会复杂得多。

关于.net - 为什么事件在 .NET 中没有返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/924689/

相关文章:

.net - .NET 的开放、免费、多维数据集数据结构

c# - DBreeze 在单声道中无法正常运行

c# - 是否可以将字典从服务器发送到 c# 客户端?

c# - 无法在 VS 2017 15.5.7 中添加服务引用

events - 在 GAS 触发事件代码中,如何找出更新了哪个 Google 日历事件?

Jquery:如何根据事件从其他列表设置文本框的值?

java - SWT:在 Linux 上使用 setEnabled() 后单击按钮出现问题

c# - 如何在 Linq to XML 语句中循环

javascript - 是否有理由在事件处理后移除 EventListener DOMContentLoaded?

objective-c - 在 Objective-C/Cocoa 中,当激活任务控制或更改空间时是否有全局事件?