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ń