0

我在理解从这里去哪里时遇到了一些麻烦——我开发了一个可以访问 SQL Express 数据库并通过 DataSet 操作它的表单。我还开发了一个类,它通过专有协议在多线程 TCP 服务器上侦听来自其他客户端的更新。

我需要做的是将这些更新更新到表单中,其中包含要更新的数据集实例。

我在这里查看了一些事件和委托帮助以及本指南,起初看起来很方便,但遇到了许多这些示例所存在的相同问题 - 它们不太擅长准确地表达正在发生的事情,并且结束在两个类中使用相似的变量。

哪个类是“订阅者”,哪个是“发布者”?我真的很讨厌表单编程,并且会完全基于命令行来执行此操作,但它适用于一群计算机文盲,以至于他们可能会因不得不使用提示而遭受创伤。

4

1 回答 1

0

发布者是其类声明事件的对象。例如,DataTable发布RowChanged事件。

处理事件的对象是订阅者。例如,具有 _table 字段的类可以订阅 RowChanged 事件(当然,假设存在处理方法):

this._table.RowChanged += this.HandleRowChanged;

有时,一个类可能会订阅它自己的事件。一个例子是 Windows 窗体的 Load 事件。这使用了不必要的开销,并且一些框架提供了虚拟方法以允许子类扩展基类的功能而无需创建事件委托。这就是为什么 Form 的 OnLoad 方法是虚拟的。

于 2012-05-24T04:40:52.683 回答