Un de vos commentaires faisait référence au type de retour du gestionnaire d'événements. Êtes-vous plus concerné par le type de gestionnaire, ou les données qui reviennent de l'événement? Si c'est le dernier, cela peut aider. Si ce n'est pas le cas, cette solution ne suffira pas, mais pourrait vous aider à vous rapprocher de ce que vous recherchez.Tout ce que vous avez à faire est de déclarer vos gestionnaires d'événements en tant que gestionnaires d'événements génériques dans l'interface et votre implémentation et vous pouvez personnaliser les résultats de retour.
Votre classe conrete ressemblerait à ceci:
public class ClsPictures : myInterface
{
// Implementing the IProcess interface
public event EventHandler<UpdateStatusEventArgs> UpdateStatusText;
//no need for this anymore: public delegate void UpdateStatusEventHandler(string Status);
public event EventHandler<StartedEventArgs> Started;
//no need for this anymore: public delegate void StartedEventHandler();
}
Votre Interface ressemblerait à ceci:
public interface myInterface
{
event EventHandler<StartedEventArgs> Started;
event EventHandler<UpdateStatusEventArgs> UpdateStatusText;
}
Maintenant que les args d'événements reviennent vos types, vous pouvez les accrocher dans un gestionnaire vous définissez.
Pour référence: https://msdn.microsoft.com/en-us/library/edzehd2t(v=vs.110).aspx
Ce ne fonctionne tout simplement pour moi. Je suis certain que j'ai tout fait de cette façon, et pourtant, mon gestionnaire dans mon interface n'est pas reconnu. Ma classe qui implémente l'interface se plaint que la classe ne correspond pas au type de retour d'interface de System.EventHandler. – Chucky
@Chucky: On dirait que vous devriez poser une nouvelle question avec un exemple court mais complet illustrant le problème. La réponse que j'ai donnée fonctionne vraiment. –
Je n'avais pas réalisé que les délégués avaient le même niveau d'accessibilité que les cours. J'ai toujours pensé qu'ils devaient être encapsulés dans une classe. – Purusartha