Suponiendo he declarado

public event EventArgs<SyslogMessageEventArgs> MessageReceived;

public int SubscribedClients
{
    get [...]
}

Me gustaría contar cuántos «suscrito clientes» mi clase. Necesito suma a aquellos que se suscribieron a través de la red a pesar de mi Api (no se muestra en el fragmento) más los que no channel.MessageReceived+=myMethod;.

Sé que C# eventos pueden ser declarado explícitamente con add y remove declaraciones, y no me cabe duda de que el conde + o -1 para un local de venta libre, pero nunca he escrito código para explícita eventos en C#, así que no sé exactamente lo que más a realizar en agregar y quitar en lugar de actualizar el contador.

Gracias.

1 Comentario

  1. 69

    Puede utilizar GetInvocationList():

    MessageReceived?.GetInvocationList().Length
    • Es mejor agregar un valor nulo de la prueba.
    • No es necesario hacer una nula de la prueba si inicializar el evento con un vacío delegado. Sin embargo, el recuento de duración será de 1. evento público EventArgs<SyslogMessageEventArgs> MessageReceived = delegado { };

Dejar respuesta

Please enter your comment!
Please enter your name here