‫Bem vindo de volta.
‫Nesta aula, você aprenderá sobre métodos anônimos e método anônimo é um método sem nome.
‫Bem, quem fica com isso?
‫E métodos anônimos em C Sharp podem ser definidos usando a palavra-chave delegate e podem ser atribuídos a
‫uma variável do tipo delicado.
‫Isso significa que não temos que definir um método próprio cada vez que quisermos chamar um método que precise de
‫um delegado, já que talvez queiramos chamá-lo uma vez.
‫Portanto, definir um delegado dedicado sempre que precisarmos pode arruinar a estrutura do código muito rapidamente.
‫Então, acrescentando ao nosso exemplo anterior, onde criamos um monte de filtros, você deve se lembrar que aqui está um idoso,
‫um veterano e todas as coisas boas.
‫E agora vamos prosseguir e criar dois filtros adicionais onde criamos uma expressão booleana customizada
‫como nosso filtro e um segundo filtro onde simplesmente exibimos todas as entradas em nossa lista.
‫Então, vamos prosseguir e ir para o nosso método principal, onde exibimos todas as pessoas chamadas
‫este método aqui e agora vamos criar um novo filtro delegates.
‫Vou usar apenas as palavras-chave de delegado de filtro, aquela que configuramos aqui no topo.
‫E você verá que ele precisa retornar um booleano e ter uma pessoa como parâmetro.
‫Então, vamos chamá-lo de filtro.
‫E aqui precisamos usar a palavra-chave delegates mais uma vez e então podemos usar os parâmetros que precisamos
‫passar.
‫E você pode ficar sentado reclamando porque, antes de tudo, precisamos adicionar um ponto-e-vírgula aqui na parte inferior
‫e, em seguida, precisamos nos certificar de que retornamos um valor.
‫Do tipo ouro.
‫Portanto, nem todos os caminhos frios retornam um valor no método anônimo, então já diz método anônimo aqui.
‫Então, o que vamos dizer é apenas retornar a idade em que é maior ou igual a 20 e em que a
‫idade é menor que 30.
‫E igual a 30.
‫Tudo bem.
‫É basicamente isso.
‫Portanto, aqui criaremos uma nova variável chamada filtro do tipo filtro delegado.
‫Então, isso é apenas variável, certo?
‫Em seguida, atribuímos um método anônimo a ele, em vez de um método já definido.
‫E então nós apenas nos certificamos de seguir as instruções desse delegado de filtro e que é retornar
‫um booleano.
‫Então é exatamente isso que estamos fazendo.
‫Estamos retornando true se essas duas afirmações forem verdadeiras.
‫Portanto, se a idade for maior ou igual, 20 ou menor e igual a 30.
‫Portanto, não se esqueça do ponto-e-vírgula no final.
‫Isso é muito importante aqui.
‫Caso contrário, isso não funcionará porque é basicamente como criar uma variável.
‫OK, então é como se int X fosse igual a três.
‫É praticamente a mesma coisa que estamos fazendo aqui com os delegados deste filtro, mas é
‫um pouco mais complicado.
‫Portanto, este ano, o que você vê aqui é um método anônimo porque não tem um nome, mas basicamente se comporta
‫como um método.
‫Portanto, agora o que podemos fazer é ligar para nossos deslocados.
‫E podemos usar nosso filtro de variável para que possamos passar o filtro.
‫Você deve se lembrar desta peça.
‫As pessoas sempre tiveram essa estrutura onde você tinha um título bem aqui, tinha um título, aí tinha que passar
‫na lista de pessoas.
‫Então, de objetos pessoais.
‫Direito.
‫E então você precisava adicionar o filtro aqui.
‫E vou usar meu filtro que acabei de configurar, que é essa variável de filtro.
‫Portanto, agora essa variável de filtro está fora do tipo de delegado de filtro, que é o que as pessoas
‫deslocadas exigem, porque aqui você vê que requer um tipo de delegado de filtro.
‫Portanto, é realmente algo interessante porque você pode, por um lado, simplesmente seguir em frente e criar um
‫método que siga a descrição do delegado e apenas usá-lo como vimos aqui.
‫Mas você também pode apenas criar uma variável que usa um método anônimo usando a palavra-chave delegate, como fizemos
‫aqui no armazenamento dentro deste filtro, e então usar esse filtro aqui.
‫Então, agora, é claro, não serão crianças, mas será entre 20 e 30 e mostrará todas
‫as pessoas que temos lá.
‫Então, vamos executar este código e ver se funciona.
‫E vemos aqui entre os 20 e os 30 anos, temos o Anatoliy, que tem 25 anos, mas mais ninguém.
‫Portanto, agora outra abordagem de um método anônimo, é que podemos passar um método anônimo diretamente como
‫um parâmetro.
‫OK, então vamos fazer isso bem rápido.
‫Então, chamamos esse método de exibição de pessoas e, desta vez, irei apenas exibir todas as pessoas, certo?
‫Então aqui estão todas as pessoas.
‫Mas agora precisamos passar.
‫Você vê aqui um delegado de filtro.
‫Portanto, vamos criar um método anônimo.
‫E para fazer isso, precisamos usar a palavra-chave delegate bem ali para fazer o like e precisamos, é
‫claro, ainda seguir a mesma instrução.
‫Ainda precisamos ter certeza de que nosso delegado que estamos passando será do tipo delegado de filtro se
‫olharmos para ele aqui no topo.
‫Então aqui o filtro delegado precisava devolver um touro e precisava da pessoa.
‫Então, vamos entrar na pessoa como o parâmetro P.
‫Mas então, é claro, como afirmei, também precisamos retornar algo como um booleano.
‫Então, basicamente, podemos chamá-lo assim.
‫Portanto, aqui está uma linha de código muito condensada.
‫Há muita coisa acontecendo aqui.
‫Estamos exibindo pessoas, mas também temos um filtro aqui.
‫E esse filtro pega todas as pessoas e só volta.
‫Verdade, porque realmente não importa muito qual pessoa colocamos aqui.
‫Então é basicamente isso.
‫Caso contrário, é claro, você também pode escrever assim, talvez fique um pouco mais legível.
‫Portanto, este aqui é o nosso método anônimo que estamos passando como o terceiro parâmetro, pois estamos apenas seguindo o delegado
‫do filtro.
‫Preparado, como você vê aqui, estamos devolvendo um touro e tomando uma pessoa como perímetro.
‫Agora você vê o poder dos delegados porque eles são super flexíveis.
‫Eles realmente querem que você siga uma determinada estrutura.
‫O resto é com você.
‫E isso dá a você, como desenvolvedor, muita flexibilidade ao trabalhar com delegados.
‫Tudo bem.
‫Essa foi uma pequena introdução aos métodos anônimos.
‫A seguir, vamos dar uma olhada nas expressões lambda.