Compartilhar via


event (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 delegar o tipo e como se inscrever em um evento e criar um método de manipulador de eventos, consulte Como publicar eventos em conformidade com as diretrizes do .NET Framework (Guia de Programação em 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 em C#) e Delegados (Guia de Programação em 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 em C#).

Palavras-chave e eventos

As seguintes palavras-chave se aplicam a eventos.

Keyword

Descrição

Para obter mais informações

estático

Faz com que o evento seja disponível para chamadores a qualquer momento, mesmo que exista nenhuma ocorrência da classe.

Classes static e membros de classes static (Guia de Programação em C#)

virtual

Permite que as classes derivadas substituir o comportamento de eventos usando o Substituir palavra-chave.

Herança (Guia de Programação em C#)

autenticada

Especifica que para classes derivadas não é mais virtual.

 

abstrata

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 static e membros de classes static (Guia de Programação em 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 em 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 a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Tarefas

Como combinar delegados (delegados multicast) (Guia de Programação em C#)

Referência

Palavras-chave C#

add (Referência de C#)

remove (Referência de C#)

Modificadores (Referência de C#)

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#