události (C#-Reference)
event Prohlásit událost v aplikaci publisher třídy se používá klíčové slovo.
Příklad
Následující příklad ukazuje, jak deklarovat a zvýšit události, která používá EventHandler jako základní typ delegáta.Například úplný kód, který také ukazuje použití obecného EventHandler<TEventArgs> delegovat typu a přihlásit se k odběru události a vytvořit metodu obslužné rutiny událostí naleznete v tématu Jak: publikování události, které odpovídají.NET Framework pokyny (Příručka programování C#).
public class SampleEventArgs
{
public SampleEventArgs(string s) { Text = s; }
public String Text {get; private set;} // readonly
}
public class Publisher
{
// Declare the delegate (if using non-generic pattern).
public delegate void SampleEventHandler(object sender, SampleEventArgs e);
// Declare the event.
public event SampleEventHandler SampleEvent;
// Wrap the event in a protected virtual method
// to enable derived classes to raise the event.
protected virtual void RaiseSampleEvent()
{
// Raise the event by using the () operator.
if (SampleEvent != null)
SampleEvent(this, new SampleEventArgs("Hello"));
}
}
Události jsou zvláštní druh delegát vícesměrového vysílání, který lze vyvolat pouze z ve třídě nebo struktuře, kde jsou deklarovány (třída aplikace publisher).Pokud jiné třídy nebo struktury se odběru událostí, jejich metody zpracování události bude volána při aplikaci publisher třídy vyvolá událost.Další informace a příklady kódu naleznete v Události (Příručka programování C#) a Delegáti (Příručka programování C#).
Události lze označit jako veřejné, soukromé, chráněné, vnitřní, nebo protectedinternal.Tyto modifikátory přístupu definovat přístup události třídy uživatelů.Další informace naleznete v tématu Modifikátory přístupu (Příručka programování C#).
Klíčová slova a události
Následující klíčová slova se vztahuje na události.
Klíčové slovo |
Description |
Další informace |
---|---|---|
Zpřístupní události volající kdykoli, i v případě, že neexistuje žádná instance třídy. |
Statické třídy a členy statických tříd (Příručka programování C#) |
|
Umožňuje potlačit chování události pomocí odvozených tříd potlačit klíčové slovo. |
||
Určuje, že pro odvozené třídy již není virtuální. |
|
|
Kompilátor nevygeneruje add a remove bloky přístupový objekt události a proto odvozené třídy musí obsahovat vlastní implementaci. |
|
Událost může být deklarován jako statické událostí pomocí statické klíčové slovo.Díky událost volání kdykoliv, i v případě, že neexistuje žádná instance třídy.Další informace naleznete v tématu Statické třídy a členy statických tříd (Příručka programování C#).
Události lze označit jako virtuální události pomocí virtuální klíčové slovo.To umožňuje přepsat chování události pomocí odvozených tříd potlačit klíčové slovo.Další informace naleznete v tématu Dědičnost (Příručka programování C#).Potlačení virtuální událost události lze také uzavřených, který určuje, že pro odvozené třídy již není virtuální.Konečně lze deklarovat událost abstraktní, což znamená, že kompilátor nevygeneruje add a remove bloky přístupový objekt události.Odvozené třídy proto musí obsahovat vlastní implementaci.
Specifikace jazyka C#
Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.
Viz také
Úkoly
Jak: kombinování Delegáti (vícesměrového vysílání delegáti) (C# Příručka programování)