Je souhaite créer une classe qui initialise une minuterie qui sera utilisée comme un noyau central pour les autres membres de la classe afin de s'enregistrer pour l'événement écoulé par minuterie. Mon problème est que je ne sais pas vraiment comment exposer l'événement écoulé par minuterie à d'autres classes. Une solution, que je pense que le travail de force est que j'expose simplement la minuterie comme une propriété publique qui renverra l'objet de la minuterie et je peux appeler la minuterie événement écoulé de cet objet, par exemple:Enregistrement d'événements écoulés par minuterie
MyAppTimer appTimer = new MyAppTimer();
Timer timer = appTimer.GetAppTimer;
timer.Elapsed += SomeMethod;
Mais avec cette solution j'exposerai la minuterie entière que je ne veux pas. Comment puis-je passer une méthode dans la classe MyAppTimer qui enregistrera la méthode avec l'événement écoulé du temporisateur en interne? Est-ce quelque chose à voir avec les délégués? Peut-être quelque chose comme:
public void RegisterHandler(someStuffGoesHere) //What do I pass in here?
{
timer.Elapsed += someStuffGoesHere;
}
C'est ce que J'ai cherché ... thanx :) – Draco
En regardant à nouveau ce code, je vois qu'il a un inconvénient: la valeur du paramètre expéditeur sera l'objet Timer, pas l'objet MyAppTimer ... cela pourrait poser problème si vous devez connaître l'expéditeur. Je vais mettre à jour ma réponse pour une solution de contournement –