使用事件处理传递数据

时间:2010-12-20 14:30:46

标签: c# .net

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

2 个答案:

答案 0 :(得分:5)

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

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

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

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

事件对于解耦系统也很有用,就像上面我在气象站中看到的那样。气象站可以自行运行,但不知道正在收听的服务或用户。

答案 1 :(得分:3)

使用事件等等:

  • 将事件源与事件接收器分离
  • 允许多个事件接收者订阅同一事件
  • 提供实施事件的众所周知的模式

有一点需要注意的是代表们如何在代码中创建意外的“泄密”:Memory Leak in C#