2012-04-03 12 views
10

tengo Clase A que implementa un gran número de instancias de la clase B. Clase B encapsula una instancia de la clase C.evento Pass de la clase C a través de la clase B a la clase A

Clase provoca eventos que necesitan ser manejado por la clase A. La clase A no necesita saber acerca de la clase C. La clase C está retransmitiendo estadísticas basadas en el rendimiento que A necesita fusionarse.

¿Cómo creo los eventos en la clase B y los conecto para que la clase A pueda suscribirse a los eventos de la clase B y recibir los eventos de la clase C?

+0

lo siento? ¿La clase A * implementa una gran cantidad de instancias de clase B *? ¿Qué significa eso exactamente? Proporcione algún código por favor –

Respuesta

21

Un evento no es más que un par de métodos que envuelven un campo de delegado. Puede sustituir la implementación predeterminada del complemento & eliminar métodos de ClassB para pasar el valor directamente al evento en ClassC:

public class ClassB 
{ 
    private ClassC m_C = new ClassC(); 

    public event EventHandler MyEvent 
    { 
     add { m_C.MyEvent += value; } 
     remove { m_C.MyEvent -= value; } 
    } 
} 
Cuestiones relacionadas