是否可以阻止多个订阅者订阅一个事件?
我创建了一个快速示例片段来为我的问题提供一些背景信息,但遗憾的是我现在无法对其进行测试,因为我不在我的 VS 机器旁。
目标是:
- 如果没有订阅者则返回一个空列表。
- 返回单个订阅者的返回值。
- 如果有多个订阅者尝试订阅该事件,则抛出异常(这是问题的关键)。
这可能吗?
public delegate List<IBaseWindow> GetWindowListDelegate();
public static event GetWindowListDelegate GetWindowListEvent;
public List<IBaseWindow> GetWindowList() {
if (GetWindowListEvent == null) {
return new List<IBaseWindow>();
}
return GetWindowListEvent();
}
注意:我使用的是 .NET 3.5 sp1。
最佳答案
听起来您不需要事件 - 只需公开委托(delegate)本身并允许调用者自行设置委托(delegate)引用即可。
关于c# - 一个事件监听器是否可以被限制为只有一个订阅者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2078175/