Como: Implemente acessadores de evento personalizada (guia de programação translation from VPE for Csharp)

Um evento é um tipo especial de delegado multicast que só pode ser chamado de dentro da classe declarada na.Código do cliente assina o evento, fornecendo uma referência a um método que deve ser chamado quando o evento for acionado.Esses métodos são adicionados à lista de invocação do delegado por meio de acessadores de evento, que se parecem com acessadores de propriedade, exceto pelo fato de que os acessadores de evento são denominados add e remove. Na maioria dos casos, não é necessário fornecer acessadores de evento personalizado.Quando nenhum acessadores de evento personalizado são fornecidos em seu código, o compilador irá adicioná-los automaticamente.No entanto, em alguns casos talvez seja necessário fornecer um comportamento personalizado.Um caso como é mostrado no tópico Como: Implementar interface de eventos (guia de programação translation from VPE for Csharp).

Exemplo

O exemplo a seguir mostra como implementar personalizados adicionar e remover os 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;
                }
            }
        }

Consulte também

Referência

Eventos (Guia de programação do C#)

evento (translation from VPE for Csharp Reference)