evento (referência de C#)
O event palavra-chave é usada para declarar um evento em uma classe do publisher.
Exemplo
O exemplo a seguir mostra como declarar e dispara um evento que usa EventHandler como o tipo delegate subjacente.No exemplo de código completo também mostra como usar a genérica EventHandler<TEventArgs> delegar o tipo e como se inscrever em um evento e criar um método de manipulador de eventos, consulte Como: publicar eventos que atendem aos.NET Framework diretrizes (guia de programação do C#).
public class SampleEventArgs
{
public SampleEventArgs(string s) { Text = s; }
public String Text {get; private set;} // readonly
}
public class Publisher
{
// Declare the delegate (if using non-generic pattern).
public delegate void SampleEventHandler(object sender, SampleEventArgs e);
// Declare the event.
public event SampleEventHandler SampleEvent;
// Wrap the event in a protected virtual method
// to enable derived classes to raise the event.
protected virtual void RaiseSampleEvent()
{
// Raise the event by using the () operator.
if (SampleEvent != null)
SampleEvent(this, new SampleEventArgs("Hello"));
}
}
Os eventos são um tipo especial de delegado multicast que só pode ser chamado de dentro da classe ou struct onde elas são declaradas (a classe do publisher).Se outras classes ou estruturas se inscrever no evento, seus métodos manipuladores de eventos serão chamados quando a classe do publisher gera o evento.Para obter mais informações e exemplos de código, consulte Eventos (guia de programação do C#) e Representantes (guia de programação do C#).
Eventos podem ser marcados como pública, particular, protegido, interno, ou protectedinternal.Esses modificadores de acesso definem como os usuários da classe podem acessar o evento.Para obter mais informações, consulte Modificadores de acesso (guia de programação do C#).
Palavras-chave e eventos
As seguintes palavras-chave se aplicam a eventos.
Keyword |
Descrição |
Para obter mais informações |
---|---|---|
Faz com que o evento seja disponível para chamadores a qualquer momento, mesmo que exista nenhuma ocorrência da classe. |
Classes estáticas e membros da classe estática (guia de programação do C#) |
|
Permite que as classes derivadas substituir o comportamento de eventos usando o Substituir palavra-chave. |
||
Especifica que para classes derivadas não é mais virtual. |
|
|
O compilador não irá gerar o add e remove blocos de acessador do evento e classes derivadas, portanto, devem fornecer sua própria implementação. |
|
Um evento pode ser declarado como um evento estático usando o estático palavra-chave.Isso torna o evento disponíveis para os chamadores a qualquer momento, mesmo que exista nenhuma ocorrência da classe.Para obter mais informações, consulte Classes estáticas e membros da classe estática (guia de programação do C#).
Um evento pode ser marcado como um evento virtual usando o virtual palavra-chave.Isso permite que as classes derivadas substituir o comportamento de eventos usando o Substituir palavra-chave.Para obter mais informações, consulte Herança (guia de programação do C#).Um evento substituindo um evento virtual também pode ser lacrado, que especifica que para classes derivadas não é mais virtual.Por fim, um evento pode ser declarado abstrata, que significa que o compilador não irá gerar o add e remove blocos de acessador do evento.Portanto, as classes derivadas devem fornecer sua própria implementação.
Especificação da linguagem C#
Para obter mais informações, consulte Especificação de linguagem do C# A especificação da linguagem é a fonte definitiva para a sintaxe e o uso da linguagem C#.
Consulte também
Tarefas
Como: combinar representantes (representantes Multicast) (guia de programação C#)
Referência
Modificadores (referência de C#)