How to: Implementar Personalizar Event acessadores (guia de programação de C#)
Um evento é um tipo especial de delegado multicast que pode ser chamado apenas de dentro da classe declarada na. Código do cliente se inscreve para o evento, fornecendo uma referência a um método que deve ser chamado quando o evento é acionado. Esses métodos são adicionados à lista de invocação de delegado por meio de acessadores de evento que se assemelham às acessadores de propriedade, exceto que os acessadores de evento são nomeados add e remove. Na maioria dos casos, você não precisa fornecer os acessadores de evento personalizado. Quando nenhum acessador do evento personalizado é fornecidos em seu código, o compilador adicionará automaticamente. No entanto, em alguns casos você talvez precise fornecer um comportamento personalizado. Por exemplo, é mostrado no tópico How to: Implementar a eventos de interface (guia de programação de C#).
Exemplo
O exemplo a seguir mostra como implementar personalizados adicionar e remover acessadores de evento. Embora você pode substituir qualquer código dentro dos acessadores, recomendamos que você bloqueie o evento antes de adicionar ou remover um novo método de manipulador de eventos.
event EventHandler IDrawingObject.OnDraw
{
add
{
lock (PreDrawEvent)
{
PreDrawEvent += value;
}
}
remove
{
lock (PreDrawEvent)
{
PreDrawEvent -= value;
}
}
}