2012-04-03 10 views
10

mam klasy A, który realizuje wiele instancji klasy B. klasy B obudowuje przykładem grupy Cprzekroczenie Zdarzenie z klasy C przez klasy B do klasy A

klasy podnosi zdarzeń, które muszą być obsługiwane przez klasę A. Klasa A nie musi wiedzieć o klasie C. Klasa C przekazuje statystyki dotyczące wydajności, które następnie muszą się połączyć.

Jak utworzyć zdarzenia w klasie B i połączyć je tak, aby klasa A mogła subskrybować zdarzenia klasy B i odbierać zdarzenia z klasy C?

+0

przykro? Klasa A * implementuje dużą liczbę wystąpień klasy B *? Co to dokładnie oznacza? Proszę podać kod –

Odpowiedz

21

Zdarzenie jest niczym więcej niż parą metod zawijania pola uczestnika. Można zastąpić domyślną implementację dodatku & metod usuwania w ClassB przekazać wartość prosto do danego wydarzenia ClassC:

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

    public event EventHandler MyEvent 
    { 
     add { m_C.MyEvent += value; } 
     remove { m_C.MyEvent -= value; } 
    } 
} 
Powiązane problemy