De How to: Publish Events that Conform to .NET Framework GuidelinesPourquoi les paramètres de base à gestionnaires d'événements personnalisés à partir EventArg
Bien que les événements dans les classes que vous définis peuvent être basées sur tout type délégué valide, même les délégués qui retournent une valeur, il est généralement recommandé que vous basez vos événements sur le modèle .NET Framework en utilisant EventHandler, comme indiqué dans l'exemple suivant .
Pourquoi? Que diriez-vous:
public delegate void GenericEventHandler<TType, TArgs>(TType sender, TArgs args);
public event GenericEventHandler<SomeSender, SomeArg> SomeEvent;
+1. vous le méritez, je ne suis pas aussi élaboré que la plupart des gens ici. –
Il y a de la valeur dans cela. Cependant, connaître les types de vos paramètres me semble plus précieux. – pomeroy
Je ne suis pas sûr de comprendre votre objection. Vous n'utilisez généralement pas 'EventArgs' tel quel, vous en dérivez un type, ajoutez toutes les informations dont cet événement aura besoin, et utilisez-le. Le gestionnaire d'événements est libre de "connaître le type" de cet argument, ou de l'ignorer (et d'accepter simplement 'EventArgs'), en fonction des besoins spécifiques. Ou est-ce que vous n'aimez pas que le type d'argument 'sender' soit toujours' object'? –