Udostępnij za pośrednictwem


CA1009: Należy poprawnie zadeklarować obsługę zdarzenia

TypeName

DeclareEventHandlersCorrectly

CheckId

CA1009

Kategoria

Microsoft.Design

Złamanie zmiany

Złamanie

Przyczyna

Pełnomocnika, który obsługuje zdarzenie publiczne lub chronione nie ma poprawny podpis, zwracają typ lub nazwy parametru.

Opis reguły

Metody obsługi zdarzenia mają po dwa parametry.Typ jest pierwszym Object i nosi nazwę "nadawca".Jest to obiekt, który wzbudził zdarzenia.Drugi parametr jest typu EventArgs i nosi nazwę "e".Jest to dane, które są skojarzone ze zdarzeniem.Na przykład jeśli zdarzenie jest wywoływane, gdy plik jest otwierany, dane zdarzenie zazwyczaj zawiera nazwę pliku.

Metody obsługi zdarzenia nie powinien zwracać wartość.W języka programowania C#, to jest wskazywany typ zwracany void.Moduł obsługi zdarzeń można wywoływać wiele metod w wielu obiektów.Jeżeli pozwolono metod w celu zwrócenia wartości, dla każdego zdarzenia, czy występują różne wartości zwracanej, i wartość ostatnia metoda, który został wywołany może być dostępny.

Jak naprawić naruszenia

Aby naprawić naruszenie tej zasady, poprawić podpisu, zwracany typ lub nazwy parametru delegata.Aby uzyskać szczegółowe informacje Zobacz poniższy przykład.

Kiedy do pomijania ostrzeżenia

Nie pomijaj ostrzeżenie od tej reguły.

Przykład

Poniższy przykład pokazuje pełnomocnika, który jest odpowiedni do obsługi zdarzeń.Metody, które mogą być wywoływane przez ten program obsługi zdarzeń jest zgodne z podpis, który jest określony w wytycznych dotyczących projektu.AlarmEventHandlerjest nazwą typ delegata.AlarmEventArgspochodzi z klasą bazową dla danych zdarzenia EventArgs, i posiada alarmu dane zdarzenie.

Imports System

Namespace DesignLibrary

   Public Delegate Sub AlarmEventHandler(sender As Object, e As AlarmEventArgs)

   Public Class AlarmEventArgs
      Inherits EventArgs
   End Class 

End Namespace
using System;

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

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

Zasady pokrewne

CA2109: Przejrzyj widoczne programy obsługi zdarzeń

Zobacz też

Informacje

EventArgs

Object

Inne zasoby

Zdarzenia i pełnomocnicy