C# 如何计算有多少侦听器连接到一个事件?

C# 如何计算有多少侦听器连接到一个事件?,c#,events,C#,Events,假设我已经宣布 public event EventArgs<SyslogMessageEventArgs> MessageReceived; public int SubscribedClients { get [...] } public event EventArgs MessageReceived; 公共int订阅客户端 { 得到[…] } 我想数一数我们班有多少“订阅客户”。我需要将通过我的API(未在片段中显示)通过网络订阅的API加上那些通过channel

假设我已经宣布

public event EventArgs<SyslogMessageEventArgs> MessageReceived;

public int SubscribedClients
{
    get [...]
}
public event EventArgs MessageReceived;
公共int订阅客户端
{
得到[…]
}
我想数一数我们班有多少“订阅客户”。我需要将通过我的API(未在片段中显示)通过网络订阅的API加上那些通过channel.MessageReceived+=myMethod订阅的API加上
channel.MessageReceived+=myMethod

我知道C#事件可以用
add
remove
语句显式声明,我当然可以在本地计数器中计算+1或-1,但我从来没有在C#中为显式事件编写过代码,所以我不知道在添加和删除时要执行什么,而不是更新计数器

谢谢。

您可以使用:


您最好添加一个空测试。如果使用空委托初始化事件,则无需执行空测试。但是,计数长度将为1。public event EventArgs MessageReceived=委托{};11年后:我想指出,
?。
在C#中是一个空测试(读作,
如果不是空的话
)@darkpbj我的答案是在2019年编辑的:-D,所以评论似乎不协调。
MessageReceived?.GetInvocationList().Length