Definição de eventos em C#:
Uma classe ou objeto pode notificar outras classes ou objetos sobre o que aconteceu por meio de eventos. A classe que envia (ou causa) o evento é chamada de "emissor" e a classe que recebe (ou processa) o evento é chamada de "assinante".
Os eventos possuem as seguintes características:
- O editor determina quando abrir o evento, e o assinante determina qual ação realizar em resposta ao evento.
- Um evento pode ter vários assinantes. Um assinante pode gerenciar múltiplos eventos de vários emissores.
- Eventos sem assinantes nunca são chamados.
- Eventos são frequentemente usados para informar os usuários sobre ações, como cliques em botões ou ações de seleção de menus em interfaces gráficas.
- Se um evento tem múltiplos assinantes, múltiplos handlers de eventos são chamados simultaneamente quando o evento é levantado. Para chamar eventos de forma assíncrona, veja Chamando Métodos de Sincronização Usando Assíncrono.
- Threads de sincronização de eventos podem ser alavancados.
A palavra-chave event é usada para declarar eventos na classe publisher.
MS Link:O login do hiperlink está visível.
Na verdade, não há diferença entre o método de escrita de eventos A e o método B!
Você pode consultar para:O login do hiperlink está visível.
EventHandler<T>Representa um método que aceita dois parâmetros (emissor de objeto, TEventArgs e) e retorna um tipo void. onde TEventArgs deve ser um tipo derivado da classe EventArgs. Esse último parâmetro é usado para armazenar os parâmetros necessários para o evento.
EventArgsé a classe base de uma classe que contém dados de eventos, que não contém dados de eventos, e é usada por eventos que não passam informações de estado para o manipulador de eventos quando o evento é levantado. Se o gerenciador de eventos precisar de informações de estado, a aplicação deve derivar uma classe dessa classe para armazenar os dados.
Volátil. Leia .NET 4.0 não é suportado
// Resumo: Referências de objetos lidas do campo especificado. Quando for necessário no sistema, uma barreira de memória será inserida para impedir que o processador reordene as operações de memória, conforme mostrado abaixo: Se esse método aparecer no código após realizar uma leitura/gravação, o processador não poderá movê-lo antes desse método. // Parâmetros: Localização: campos para ler. // Parâmetros de tipo: T: O tipo de campo a ser lido. Esse deve ser o tipo de referência, não o tipo de valor. // Resultados do retorno: Leia até a referência T. Essa referência é escrita por qualquer processador no computador, independentemente do número de processadores ou do estado do cache do processador. [Contrato de Confiabilidade(Consistência.NãoNãoCorroCorruptoState, Cer.Sucesso)] [SegurançaSeguraCrítica] [TargetedPatchingOptOut("Desempenho crítico para inline através dos limites da imagem NGen")] T Read, estática pública <T>(ref T localização) onde T : classe;
|