‫Tudo bem, então o que é um delegado?
‫Bem, em termos simples, um delegado é um tipo que pode conter uma referência a um método.
‫E quando você chama os delegados, o método referenciado será chamado.
‫Imagine que estamos desenvolvendo uma biblioteca de IU que outros desenvolvedores podem usar para construir aplicativos móveis.
‫E um dos elementos da IU que outros desenvolvedores podem usar é um botão.
‫Se olharmos o código por trás da classe de botão usada para criar o botão verde na tela, um
‫botão como este terá as seguintes propriedades.
‫Um string chamado text com o valor enviado uma cor chamada back color, que é algo esverdeado e, claro,
‫dois é chamado cise w ansys h para a largura e altura do botão.
‫Agora o que falta aqui é um método que contenha o código que precisa ser executado assim que o botão for
‫clicado.
‫Agora temos um problema aqui.
‫Nós, como os desenvolvedores que fizeram este sistema de IU, não podemos dizer o que os outros desenvolvedores estão usando.
‫Nosso sistema de IU deseja que o botão faça quando é clicado.
‫É por isso que precisamos fornecer o evento UNCLICK como um delegado e não como um método normal.
‫E uma vez que um delegado é uma variável que pode armazenar uma referência a
‫um método, como ouvimos antes, outros desenvolvedores podem escrever sua própria implementação dentro de um método que
‫contém a lógica que desejam executar ao clicar e atribuí-la aos botões ao clicar delegate evento que fornecemos nosso único delegado pode
‫ser definido assim.
‫Portanto, agora vamos dividi-lo pouco a pouco, começaremos escrevendo o Axis Pacifier, esta palavra-chave privada seguida pela
‫palavra-chave delegate, que informa ao compilador que estamos definindo um novo tipo.
‫E, finalmente, precisamos especificar o tipo de métodos que nosso delegado pode armazenar.
‫E por tipo, quero dizer o tipo de retorno e os parâmetros em delegados é o nome do delegado que acabamos de
‫definir.
‫Agora, a próxima etapa é realmente criar uma variável de seu novo tipo de delegado.
‫Portanto, definimos como definimos qualquer variável em C sustenido começando com public, então o tipo da variável que estamos
‫criando, que está em delegado não clicado e, por último, o nome da variável que está ativado.
‫Então, novamente, definimos uma variável pública do tipo unclick delegate e a nomeamos como Click.
‫Essa variável pode conter ou armazenar uma referência a qualquer método, desde que tenha void como o tipo retornado e não
‫receba nenhum parâmetro, caso contrário, obteremos um erro semelhante a quando tentamos armazenar um float dentro de
‫um invariável.
‫Então, como podemos usar este novo delegado?
‫Bem, digamos que bebemos uma garrafa que caiu em nossa tela no Edem que estamos usando para desenvolver este aplicativo móvel
‫usando nosso sistema de IU, o que resultou na criação de um objeto de botão.
‫Vamos supor que o nome desse botão seja botão de envio.
‫Portanto, vamos primeiro à lógica que você deseja executar quando o botão é clicado.
‫No nosso caso, queremos nos conectar à rede, enviar a mensagem e exibir uma mensagem ao usuário.
‫Portanto, agora temos um método normal chamado enviar clique do botão, que ainda não está conectado ao botão de forma alguma.
‫Para consertar isso, precisamos atribuir nosso método à variável unclick do tipo unclick delegate.
‫Observe que escrevemos o nome do nosso método sem os colchetes, porque não o estamos
‫chamando, estamos apenas armazenando sua referência no delegado unclick agora sob o capô, se o mouse estava
‫passando sobre o botão e o mouse foi clicado, nosso sistema de IU irá chamar o delegado unclick do nosso botão enviar.
‫Isso, em troca, chamará qualquer método atribuído a ele.
‫Nesse caso, ele chamará o clique do botão enviar e a caixa de diálogo de mensagem enviada será exibida desta forma.
‫Quem quer que use nosso sistema de IU pode criar seus próprios métodos e, em seguida, atribuir seus métodos ao nosso
‫delegado e podemos chamá-los sempre que as condições forem adequadas.
‫Não estamos limitados a eventos não clicados.
‫Podemos até criar delegados para quando o aplicativo inicia ou fecha, por exemplo.
‫Bem, este foi um exemplo muito restrito, mas este é um caso de uso real de delegados em geral.
‫A seguir, aprenderemos como usar um dos delegados que já existe no C Sharp.
‫E depois disso, começaremos a criar nossos próprios delegados, semelhante a como fizemos neste exemplo.
‫Então nos vemos no próximo vídeo.