CA1009 : Déclarer les gestionnaires d'événements correctementCA1009: Declare event handlers correctly

TypeNameTypeName DeclareEventHandlersCorrectlyDeclareEventHandlersCorrectly
CheckIdCheckId CA1009CA1009
CategoryCategory Microsoft.DesignMicrosoft.Design
Modification avec ruptureBreaking Change RuptureBreaking

CauseCause

Un délégué qui gère un événement public ou protégé n’a pas la signature correcte, de type de retour, ou les noms de paramètre.A delegate that handles a public or protected event does not have the correct signature, return type, or parameter names.

Description de la règleRule description

Les méthodes du gestionnaire d'événements acceptent deux paramètres.Event handler methods take two parameters. Le premier est de type System.Object et est nommé 'sender'.The first is of type System.Object and is named 'sender'. Il s'agit de l'objet qui déclenche l'événement.This is the object that raised the event. Le deuxième paramètre est de type System.EventArgs et est nommé « e ».The second parameter is of type System.EventArgs and is named 'e'. Il s'agit des données qui sont associées à l'événement.This is the data that is associated with the event. Par exemple, si l’événement est déclenché chaque fois qu’un fichier est ouvert, les données d’événement contient généralement le nom du fichier.For example, if the event is raised whenever a file is opened, the event data typically contains the name of the file.

Méthodes de gestionnaire d’événements ne doivent pas retourner une valeur.Event handler methods should not return a value. Dans le langage de programmation c#, cela est indiqué par le type de retour void.In the C# programming language, this is indicated by the return type void. Un gestionnaire d’événements peut appeler plusieurs méthodes dans plusieurs objets.An event handler can invoke multiple methods in multiple objects. Si les méthodes étaient autorisées à retourner une valeur, plusieurs valeurs de retour se produirait pour chaque événement, et seule la valeur de la dernière méthode a été appelée serait disponible.If the methods were allowed to return a value, multiple return values would occur for each event, and only the value of the last method that was invoked would be available.

Comment corriger les violationsHow to fix violations

Pour corriger une violation de cette règle, corrigez la signature, type de retour ou les noms de paramètre du délégué.To fix a violation of this rule, correct the signature, return type, or parameter names of the delegate. Pour plus d’informations, consultez l’exemple suivant.For details, see the following example.

Quand supprimer les avertissementsWhen to suppress warnings

Ne supprimez aucun avertissement de cette règle.Do not suppress a warning from this rule.

ExempleExample

L’exemple suivant montre un délégué qui est adapté à la gestion des événements.The following example shows a delegate that is suited to handling events. Les méthodes qui peuvent être appelées par ce gestionnaire d’événements conformes à la signature spécifiée dans les instructions de conception.The methods that can be invoked by this event handler comply with the signature that is specified in the Design Guidelines. AlarmEventHandler est le nom de type du délégué.AlarmEventHandler is the type name of the delegate. AlarmEventArgs dérive de la classe de base de données d’événement, EventArgs, et contient les données d’événement d’alarme.AlarmEventArgs derives from the base class for event data, EventArgs, and holds alarm event data.

using namespace System;

namespace DesignLibrary
{
   public ref class AlarmEventArgs : public EventArgs {};
   public delegate void AlarmEventHandler(
      Object^ sender, AlarmEventArgs^ e);
}
using System;

namespace DesignLibrary
{
   public class AlarmEventArgs : EventArgs {}
   public delegate void AlarmEventHandler(object sender, AlarmEventArgs e);
}
Imports System

Namespace DesignLibrary

   Public Delegate Sub AlarmEventHandler(sender As Object, e As AlarmEventArgs)
   
   Public Class AlarmEventArgs
      Inherits EventArgs
   End Class
   
End Namespace

CA2109 : Passez en revue les gestionnaires d’événements visiblesCA2109: Review visible event handlers

Voir aussiSee also