Sdílet prostřednictvím


CA1009: Deklarujte správně obslužné rutiny událostí

Název_typu

DeclareEventHandlersCorrectly

CheckId

CA1009

Kategorie

Microsoft.design

Změnit rozdělení

Rozdělení

Příčina

Delegát, který zpracovává události veřejné nebo chráněné nemá správný podpis, typ nebo názvy parametrů.

Popis pravidla

Metody zpracování události trvat dva parametry.První typ je Object a s názvem "odesílatel".Toto je objekt, který vyvolal událost.Druhý parametr je typu EventArgs a s názvem "e".Toto je data, která je přidružena událost.Například k Pokud událost je aktivována při každém otevření souboru, data událostí obvykle obsahuje název souboru.

Metody zpracování události by nevrací hodnotu.V programovacího jazyka C#, je dána návratový typ void.Obslužnou rutinu události lze vyvolat více metod ve více objektech.Metody vrátit hodnotu, pokud každé události by nastat více vrácené hodnoty a hodnoty poslední metoda, která byla vyvolána by k dispozici.

Jak opravit porušení

Porušení tohoto pravidla opravíte opravte podpisu, návratový typ nebo názvy parametrů delegáta.Podrobnosti naleznete v následujícím příkladu.

Při potlačení upozornění

Nepotlačovat upozornění od tohoto pravidla.

Příklad

Následující příklad ukazuje delegát, který je vhodný pro zpracování událostí.Metody, které lze uplatnit tuto obslužnou rutinu události v souladu s podpis, který je zadán v pokynech pro návrh.AlarmEventHandlerje název typu delegáta.AlarmEventArgsje odvozen ze základní třídy pro události data EventArgs, a blokování poplachu dat událostí.

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);
}

Souvisejících pravidel

CA2109: Zkontrolujte viditelné obslužné rutiny událostí

Viz také

Referenční dokumentace

EventArgs

Object

Další zdroje

Události a Delegáti