Diferença entre delegados e eventos em c #

Diferença-chave - Delegados x Eventos em C #
 

C # é uma linguagem de programação desenvolvida pela Microsoft. Ele suporta Programação Estruturada e Programação Orientada a Objetos. Delegados e eventos são usados ​​para programação orientada a eventos em C #. Um delegado é um ponteiro de tipo seguro para um método. Em um aplicativo com uma interface gráfica do usuário (GUI), existem botões etc. Quando um botão é clicado, ocorre algum tipo de ação. Essas ações são chamadas de eventos. Por exemplo, atualizar uma página da Web acionará o evento de carregamento da página. Este artigo discute a diferença entre delegados e eventos em C #. o diferença chave entre delegado e evento em C # é que um delegado é uma referência a um método enquanto um evento está associado a um manipulador de eventos usando um delegado. Quando um evento ocorre, ele envia um sinal para o delegado. Em seguida, o delegado executa a função correspondente. Portanto, todos os eventos dependem de delegados.

CONTEÚDO

1. Visão geral e principais diferenças
2. O que são delegados em C #
3. O que são eventos em c #
4. Semelhanças entre delegados e eventos em C #
5. Comparação lado a lado - Delegados x Eventos em C # em forma de tabela
6. Resumo

O que são delegados em c #?

Os representantes em C # são semelhantes às funções de retorno de chamada em outras linguagens de programação, como JavaScript. As funções de retorno de chamada são atribuídas em tempo de execução. Eles fornecem funcionalidades que podem ser ativadas e desativadas conforme necessário. O mesmo pode ser implementado usando delegados em C #. Os delegados em C # dissociam o chamador e a função chamada. Portanto, reduz o acoplamento pesado.

.A estrutura NET classificou os tipos em duas categorias. Eles são tipos de valor e tipos de referência. A estrutura é um exemplo do tipo de valor. A classe é um exemplo de um tipo de referência. Delegados também são tipos referenciados. Um delegado é usado para manter uma referência a um método. Eles são indicadores de segurança de tipo. Delegado são derivados da classe System.Delegate. A declaração de delegado é semelhante a uma declaração de método, mas contém a palavra-chave 'delegar'. A sintaxe do delegado é a seguinte. delegar. O tipo de retorno declara o valor de retorno pelo método É chamado pelo delegado. A lista de parâmetros define os parâmetros exigidos pelo método. Consulte o programa abaixo com os delegados.

Figura 01: Programa C # com delegados

De acordo com o programa acima, os métodos calSquare e calCube são semelhantes ao delegado declarado. No programa principal, a variável cal é atribuída à função calSquare. Agora, cal está apontando para o método calSquare. Ao passar o valor, o valor quadrado é retornado e impresso na tela. Novamente, cal é atribuído ao método calCube. Agora, cal está apontando para o método calCube. Ao passar o valor, o valor do cubo é retornado e impresso na tela. O mesmo delegado é usado para referir métodos diferentes. Portanto, aumenta a flexibilidade do programa.

O que são eventos em c #?

Em um aplicativo, pode haver pressionamentos de teclas, cliques de botões e movimentos do mouse. Quando isso ocorre, um evento será gerado. Quando o botão enviar é pressionado em um formulário de envio, o evento button_click () é gerado em segundo plano. O evento chama uma execução da função associada. Quando um evento ocorre, a resposta do aplicativo a isso. Existem duas seções em um programa de manipulação de eventos. O editor contém a definição de eventos e delegada. O Assinante aceita o evento e fornece o manipulador de eventos.

A declaração do evento é event; O tipo de uma declaração de evento deve ser do tipo delegado e o delegado deve ser tão acessível quanto o próprio evento. O nome do evento deve ser um nome C # válido.

Figura 02: Programa C # com eventos

De acordo com o programa acima, o delegado e o evento são criados. Na classe Calcular, existe um método para adicionar dois números. Se um número ímpar for encontrado, o evento ocorrerá. É o eventOddNumber (). No método principal, o manipulador de eventos eventOddNumber chama o delegado. Finalmente, o delegado executa o método.

Qual é a semelhança entre delegados e eventos em c #?

  • Delegados e Eventos em C # estão relacionados a eventos controlados por eventos.

Qual é a diferença entre delegados e eventos em c #?

Delegados x eventos em c #

Um delegado é uma variável do tipo de referência que mantém a referência a um método. Um evento é um membro da classe do tipo delegado usado pelo objeto ou classe para fornecer notificação a outros objetos de que um evento ocorreu.
 Palavra-chave
Um delegado é declarado usando a palavra-chave 'delegate'. Um evento é declarado usando a palavra-chave "event".
Dependência
Os delegados não são confiáveis. Eventos dependem de delegados.

Sumário - Delegados x Eventos em C #

Delegados e eventos são dois conceitos associados à programação orientada a eventos em C #. Este artigo discutiu a diferença entre delegados e eventos em C #. A diferença entre delegado e evento em C # é que um delegado é uma referência a um método enquanto um evento está associado a um manipulador de eventos usando um delegado. Os eventos dependem dos delegados. Quando um evento ocorre, ele envia um sinal para o delegado. Em seguida, o delegado executa a função correspondente

Referência:

1.Balagurusamy, E. Programação em C #, A premier. Quarta edição, McGraw Hill Education (India) Private Limited, 2016.
2. "Menu principal". C Tutorial. Disponivel aqui 
3.sachinbpaul. Delegados em C #, Sachin Paul, 1 de outubro de 2014. Disponível aqui