【发布时间】:2017-05-22 23:40:28
【问题描述】:
我最近开始使用 C# 事件,我真的很喜欢它们提供的易用性(我来自 java 背景,我们必须手动完成所有这些事件)。
但是,在我的 java 背景中,我缺少一件事:继承方面。
在java中,如果你想订阅一个事件,你会继承一个接口,比如IKeyListener。该接口将包含您将在订阅类中实现的所有方法事件签名。每当按下某个键时,就会触发这些已实现的方法。与 C# 大致相同。但是,与 java 不同的是,我无法确定哪些类订阅了某些事件,因为它们实际上并没有继承任何东西。
所以如果我想要一个支持按键事件的对象列表,我可以这样做
List<IKeyListener> keyListeners = new ArrayList<IKeyListener>();
但是,我看不到在 C# 中执行此操作的任何好方法。我将如何创建类似于上述列表的列表?最好不要太多“hackiness”。
谢谢。
【问题讨论】:
-
虽然您在问题中提到 Java,但问题本身与创建 Java 程序无关,因此 java 问题标签不合适。我已经为你删除了。
标签: c# events interface event-handling