Chciałbym przekazać zdarzenie do funkcji pomocnika. Ta funkcja spowoduje dołączenie metody do zdarzenia. Mam jednak problemy z prawidłowym przekazaniem zdarzenia. Próbowałem przekazać EventHandler<TEventArgs>
. Kompiluje się, ale zdarzenia nie są dołączone (ale nadal są dodawane, wydaje się, że tworzona jest kopia procedury obsługi zdarzeń).Jak mogę przekazać zdarzenie do funkcji w C#?
Na przykład, jeśli mam to:
public event EventHandler<EventArgs> MyEvent;
a funkcja pomocnika:
public static void MyHelperFunction<TEventArgs>(EventHandler<TEventArgs> eventToAttachTo)
{
eventToAttachTo += (sender, e) => { Console.WriteLine("Hello world"); };
}
a dzwoniący:
MyHelperFunction(MyEvent);
MyEvent(null, new EventArgs()); // Does nothing.
@Strager: Czy mógłbyś trochę sprecyzować, w jaki sposób używasz tego? To pytanie było bardzo interesujące, ale mam problem z wyświetleniem tego przypadku. –
@John Feminella, tworzyłem funkcje pomocnicze i jeden z nich czekał synchronicznie na wydarzenie. Są używane głównie w celu ograniczenia ponownego użycia kodu dla kilku metod WaitFor (np. WaitForConnected) w moich klasach sieciowych (które działały asynchronicznie). – strager