Comment puis-je passer d'un événement à une fonction en C#?

Je suis à la recherche pour passer d'un événement à une fonction d'assistance. Cette fonction permettra de fixer une méthode pour l'événement. Cependant, j'ai du mal à correctement passant l'événement. J'ai essayé de passer un EventHandler<TEventArgs>. Il compile, mais les événements ne sont pas attachés (mais sont encore ajouté; il semble qu'une copie du gestionnaire d'événements est faite).

Par exemple, si j'ai ceci:

public event EventHandler<EventArgs> MyEvent;

Et la fonction d'assistance:

public static void MyHelperFunction<TEventArgs>(EventHandler<TEventArgs> eventToAttachTo)
{
    eventToAttachTo += (sender, e) => { Console.WriteLine("Hello world"); };
}

Et l'appelant:

MyHelperFunction(MyEvent);
MyEvent(null, new EventArgs()); //Does nothing.
  • Pourriez-vous élaborer un peu sur les détails de la façon dont vous avez été en utilisant ce? Je trouve cette question très intéressante, mais je vais avoir de la difficulté à voir le cas d'utilisation.
  • Feminella, j'ai été la création de certaines fonctions d'assistance, et d'une manière synchrone attend un événement. Ils sont principalement utilisés pour réduire la réutilisation de code pour plusieurs WaitFor méthodes (par exemple, WaitForConnected) dans mes classes pour le réseau (qui s'est opéré de manière asynchrone).
InformationsquelleAutor strager | 2009-03-08