2010-10-30 27 views
26

Ben Bir etkinliğe kaç tane dinleyicinin bağlandığı sayılır?

public event EventArgs<SyslogMessageEventArgs> MessageReceived; 

public int SubscribedClients 
{ 
    get [...] 
} 
ben "istemcileri abone" kaç saymak istiyorum

ilan ettiler varsayarsak benim sınıf vardır. Ağ üzerinden abone olanları, API'lerim (parçada gösterilmiyor) ve yapanlara eklemem gerekir.

C# olayları add ve remove ifadelerle açıkça beyan edilebilir olduğunu biliyoruz ve orada mutlaka sayabilir + veya -1 yerel tezgaha ama C# açık etkinlikler için kod yazdı asla, bu yüzden yok Sayacı güncellemekten ziyade, ekleme ve kaldırma işlemlerinde daha fazla işlem gerçekleştirileceğini tam olarak öğrenin.

Teşekkür ederiz.

cevap

53
MessageReceived.GetInvocationList().Length 
+16

Sıfır testi eklemeniz daha iyi olur. –

+2

Etkinliği boş bir delege ile başlatırsanız sıfır testi yapmanıza gerek yoktur. Ancak, sayım uzunluğu 1 olur. Public olayı EventArgs MessageReceived = temsilci {}; –

İlgili konular