gpt4 book ai didi

c# - 一个事件监听器是否可以被限制为只有一个订阅者?

转载 作者:可可西里 更新时间:2023-11-01 08:16:20 24 4
gpt4 key购买 nike

是否可以阻止多个订阅者订阅一个事件?

我创建了一个快速示例片段来为我的问题提供一些背景信息,但遗憾的是我现在无法对其进行测试,因为我不在我的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com