CA1009 : Déclarer les gestionnaires d'événements correctement
Élément | Valeur |
---|---|
ID de la règle | CA1009 |
Category | Microsoft.Design |
Modification avec rupture | Rupture |
Cause
Un délégué qui gère un événement public ou protégé n'a pas la signature, le type de retour ou les noms de paramètres appropriés.
Notes
Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.
Description de la règle
Les méthodes du gestionnaire d'événements acceptent deux paramètres. Le premier est de type System.Object et se nomme « sender ». Il s'agit de l'objet qui déclenche l'événement. Le deuxième paramètre est de type System.EventArgs et se nomme « e ». Il s'agit des données qui sont associées à l'événement. Par exemple, si l’événement est déclenché chaque fois qu’un fichier est ouvert, les données d’événement contiennent généralement le nom du fichier.
Les méthodes de gestionnaire d’événements ne doivent pas retourner de valeur. Dans le langage de programmation C#, cela est indiqué par le type de retour void
. Un gestionnaire d’événements peut appeler plusieurs méthodes dans plusieurs objets. Si les méthodes étaient autorisées à retourner une valeur, plusieurs valeurs de retour se produiraient pour chaque événement, et seule la valeur de la dernière méthode appelée serait disponible.
Comment corriger les violations
Pour corriger une violation de cette règle, corrigez la signature, le type de retour ou les noms de paramètres du délégué. Pour plus de détails, consultez l’exemple suivant.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
L’exemple suivant montre un délégué adapté à la gestion des événements. Les méthodes qui peuvent être appelées par ce gestionnaire d’événements sont conformes à la signature spécifiée dans les instructions de conception. AlarmEventHandler
est le nom de type du délégué. AlarmEventArgs
dérive de la classe de base pour les données d’événement, EventArgset contient les données d’événement d’alarme.
using System;
namespace DesignLibrary
{
public class AlarmEventArgs : EventArgs {}
public delegate void AlarmEventHandler(object sender, AlarmEventArgs e);
}
Règles associées
CA2109 : Passez en revue les gestionnaires d'événements visibles
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour