Egyéni eseménykiegészítők implementálása (C# programozási útmutató)
Az esemény egy speciális csoportos küldési meghatalmazott, amely csak abban az osztályban hívható meg, amelyben deklarálva van. Az ügyfélkód előfizet az eseményre egy olyan metódusra mutató hivatkozás megadásával, amelyet az esemény indításakor meg kell hívni. Ezek a metódusok a delegált meghívási listájához olyan eseménykiegészítőken keresztül kerülnek fel, amelyek hasonlítanak a tulajdonság tartozékaihoz, azzal a kivételsel, hogy az eseményhez tartozó tartozékok neve és remove
.add
A legtöbb esetben nem kell egyéni eseménykiegészítőket megadnia. Ha a kód nem ad meg egyéni eseménykiegészítőket, a fordító automatikusan hozzáadja őket. Bizonyos esetekben azonban előfordulhat, hogy egyéni viselkedést kell megadnia. Az egyik ilyen eset az interfészesemények implementálása című témakörben látható.
Példa
Az alábbi példa bemutatja, hogyan valósítható meg egyéni eseménykiegészítők hozzáadása és eltávolítása. Bár bármilyen kódot helyettesíthet a tartozékokon belül, javasoljuk, hogy zárolja az eseményt, mielőtt új eseménykezelő metódust ad hozzá vagy távolít el.
event EventHandler IDrawingObject.OnDraw
{
add
{
lock (objectLock)
{
PreDrawEvent += value;
}
}
remove
{
lock (objectLock)
{
PreDrawEvent -= value;
}
}
}