Implementace vlastních přístupových objektů událostí (Průvodce programováním v C#)
Událost je speciální druh delegáta vícesměrového vysílání, který lze vyvolat pouze z třídy, ve které je deklarován. Kód klienta se přihlásí k odběru události poskytnutím odkazu na metodu, která by se měla vyvolat při spuštění události. Tyto metody se přidají do seznamu vyvolání delegáta prostřednictvím přístupových objektů událostí, které se podobají přístupovým objektům vlastností s výjimkou toho, že přístupové objekty událostí jsou pojmenované add
a remove
. Ve většině případů nemusíte zadávat vlastní přístupové objekty událostí. Pokud kód neobsahuje žádné vlastní přístupové objekty událostí, kompilátor je přidá automaticky. V některých případech ale možná budete muset poskytnout vlastní chování. Jeden takový případ je uveden v tématu Jak implementovat události rozhraní.
Příklad
Následující příklad ukazuje, jak implementovat vlastní přidání a odebrání přístupových objektů událostí. I když můžete nahradit jakýkoli kód uvnitř přístupových objektů, doporučujeme, abyste událost před přidáním nebo odebráním nové metody obslužné rutiny události zamkli.
event EventHandler IDrawingObject.OnDraw
{
add
{
lock (objectLock)
{
PreDrawEvent += value;
}
}
remove
{
lock (objectLock)
{
PreDrawEvent -= value;
}
}
}