代码之家  ›  专栏  ›  技术社区  ›  NoAlias

在VB.Net的界面中定义事件处理程序的方法是什么?

  •  1
  • NoAlias  · 技术社区  · 14 年前

    我正在制作一个接口,其中定义了许多事件。当我在类中实现接口时,事件将显示出来。我想强制实现接口的类也必须生成事件处理程序。我不在乎类在哪里引发事件,但我希望它们必须定义一旦引发事件会发生什么。这可能吗?如果可能,我该怎么做?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Steven    14 年前

    因为接口定义的是契约而不是实现,所以实际上没有办法“强制”实现以某种方式运行。

    也就是说,当你提到与事件在同一个类中的事件处理程序时,我有点困惑。除非我混淆了一些术语,否则处理程序是属于事件订阅者的方法,而不是发布者的方法。你的意思是说 On<Event> “方法?如果需要将它们公开给类之外的对象,那么也可以将它们添加到接口中,但是要知道如何将两者结合在一起,则取决于实现类,这看起来是一个有点奇怪的设计。

    如果你想强制这种行为,像{abstract}基类比接口更适合你的需要吗?

    (ETA:您也可以考虑查看观察者模式?)