evento (Referência de C#)

O event palavra-chave é usada para declarar um evento em uma classe de editor.

Exemplo

O exemplo a seguir mostra como declarar e dispara um evento que usa EventHandler como o tipo delegado subjacente. No exemplo de código completo também mostra como usar a classe genérica EventHandler<TEventArgs> delegar o tipo e como se inscrever em um evento e criar um método do manipulador de eventos, consulte How to: Publica os eventos que seguem.Diretrizes do NET Framework (guia de programação de 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 pode ser chamado apenas de dentro da classe ou struct, onde elas são declaradas (a classe do publisher). Se outras classes ou estruturas assinar o evento, seus métodos de manipulador de eventos serão chamados quando a classe do publisher gera o evento. Para obter mais informações e exemplos de código, consulte Events (C# Programming Guide) e Delegates (C# Programming Guide).

Eventos podem ser marcados como pública, particular, protegido, interno, ou protected internal. Esses modificadores de acesso definem como os usuários da classe podem acessar o evento. Para obter mais informações, consulte Access Modifiers (C# Programming Guide).

Palavras-chave e eventos

As palavras-chave a seguir se aplicam a eventos.

Keyword

Descrição

Para obter mais informações

estático

Disponibiliza o evento para os chamadores a qualquer momento, mesmo que exista nenhuma ocorrência da classe.

Static Classes and Static Class Members (C# Programming Guide)

virtual

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

Inheritance (C# Programming Guide)

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 disponibiliza o evento para os chamadores a qualquer momento, mesmo que exista nenhuma ocorrência da classe. Para obter mais informações, consulte Static Classes and Static Class Members (C# Programming Guide).

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 Inheritance (C# Programming Guide). 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 C# Language Specification A especificação de linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Tarefas

How to: Combine Delegates (Multicast Delegates)(C# Programming Guide)

Referência

C# Keywords

Adicionar (referência de C#)

Remover (referência de C#)

Modifiers (C# Reference)

Conceitos

C# Programming Guide

Outros recursos

C# Reference