Gerando um evento

Evento funcionalidade é fornecida por três elementos inter-relacionados: uma classe que fornece dados de eventos, um delegado do evento e a classe que dispara o evento.O .NET Framework tem uma convenção de nomeação de classes e métodos relacionados aos eventos.Se você deseja que sua classe gere um evento chamado EventName, você precisa dos seguintes elementos:

  • Uma classe que contém dados do evento, chamada EventName EventArgs .Essa classe deve derivar de System.EventArgs.

  • Um representante de evento, chamado EventName EventHandler .

  • Uma classe que gera o evento.Essa classe deve fornecer a declaração de evento ( EventName ) e um método que gera o evento (On EventName) .

A classe de dados de evento e a classe de representante de evento podem já estar definidas na biblioteca de classes do .NET Framework ou em uma biblioteca de classes de terceiros.Nesse caso, você não precisa definir essas classes.Por exemplo, se o evento não usar dados personalizados, você pode usar System.EventArgs para os dados do seu evento e System.EventHandler para o seu representante.

Você define um membro de eventos em sua classe usando a palavra-chave Event.Quando o compilador encontra uma palavra-chave Event em sua classe, ele cria um membro particular, como:

private EventNameHandler eh = null;

O compilador também cria dois métodos públicos, add_EventName e remove_EventName.Esses métodos são ganchos de eventos que permitem que representantes sejam combinados ou removidos do representante do evento eh.Os detalhes são ocultados do programador.

Observação:

Em idiomas Outros than translation from VPE for Csharp e Visual Basic 2005, o compilador não pode gerar automaticamente o código correspondente a um membro do evento e pode ser necessário definir explicitamente os ganchos do evento e o campo delegado particular.

Após você definir sua implementação de evento, você deve determinar quando gerar o evento.Você gera o evento chamando o método protegido OnEventName na classe que definiu o Evento, ou em uma classe derivada.O método On EventName gera o evento invocando os representantes, passando em quaisquer dados específicos do evento.Os métodos de representante para o evento podem executar ações para o evento ou processar os dados específicos do evento.

Observação:

O protegido EmEventName método também permite que as classes derivadas substituir o evento sem anexar um delegado para ele.Uma classe derivada deve sempre chamar o método On EventName da classe base para garantir que representantes registrados recebam o evento.

Quando você deseja manipular eventos gerados em outra classe, você adiciona métodos de representante ao evento.Se você não estiver familiarizado com o modelo de representante para eventos no .NET Framework, consulte Eventos e Representantes.

Consulte também

Tarefas

Como: Gerar e consumir eventos

Como: Implementar eventos em sua classe

Conceitos

Eventos e representantes

Outros recursos

Tratamento e disparada de eventos