使用事件处理传递数据

use*_*949 1 .net c#

任何人都可以详细说明使用事件机制将数据从一个类传递到另一个类的优点和缺点?何时是使用事件传递数据的最佳时间?

raR*_*aRa 5

我们来举个例子吧.你有一个系统,有20人订阅气象站,以应对天气变化.您是否希望气象站跟踪所有订阅的人员和服务?

在我看来,气象站不应该知道等待天气变化的人或服务.气象站应该只发送一个事件,无论谁听到它都会得到通知:-)

所以重点是,您使用事件来通知观察者对象中发生的操作或状态更改.观察者可以是不同类型的对象,因为您不必了解它们.如果有人听对象,那么他会照顾它.

如果它是一对一的关系并且等待某事发生的对象总是具有相同的类型,那么对于那种情况你就不需要事件.

事件也很适合解耦系统,就像我上面的气象站一样.气象站可以独立运行,而无需了解正在收听的服务或用户.