Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Um evento é um tipo especial de delegado de multicast que só pode ser invocado de dentro da classe em que é declarado. O código do cliente assina o evento fornecendo uma referência a um método que deve ser invocado quando o evento é acionado. Esses métodos são adicionados à lista de invocação do delegado por meio de acessadores de eventos, que se assemelham a acessadores de propriedade, exceto que os acessadores de eventos são nomeados add e remove. Na maioria dos casos, não é necessário fornecer acessadores de eventos personalizados. Quando nenhum acessador de evento personalizado é fornecido em seu código, o compilador irá adicioná-los automaticamente. No entanto, em alguns casos, você pode ter que fornecer um comportamento personalizado. Um desses casos é mostrado no tópico Como implementar eventos de interface.
Exemplo
O exemplo a seguir mostra como implementar acessores de eventos personalizados para adicionar e remover. Embora você possa 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 (objectLock)
{
PreDrawEvent += value;
}
}
remove
{
lock (objectLock)
{
PreDrawEvent -= value;
}
}
}