‫Volte e esta palestra, vamos criar nossos próprios delegados para filtrar uma lista de pessoas, e isso nos dará
‫uma compreensão mais profunda de como os delegados trabalham nos bastidores.
‫Portanto, vamos considerar a seguinte classe que temos aqui.
‫Portanto, é uma pessoa de classe muito simples com uma propriedade de nome, bem como uma propriedade de idade.
‫Apenas duas propriedades aqui.
‫Portanto, queremos criar nossos próprios delegados para filtrar pessoas com base na idade, nossos delegados de filtro tomarão
‫uma pessoa como parâmetro e retornarão um bool se a condição referente à idade for atendida.
‫Qual é a condição exatamente?
‫Bem, não nos importamos, pois o código pode ser usado para filtrar uma lista em uma página da Web, por exemplo,
‫e o recurso de filtragem pode mudar rapidamente e.
‫Bem, essa é exatamente a beleza dos delegados.
‫Que luxo.
‫Tudo bem.
‫Portanto, vamos definir nosso tipo de delegado.
‫E, portanto, vou apenas prosseguir e dizer que esse será um delegado do tipo booleano.
‫Vou chamá-lo de delegado de filtro e isso exigirá uma pessoa.
‫Portanto, um objeto pessoal chamado Pete.
‫Agora, vamos em frente e apenas criar uma pequena lista de pessoas de objetos pessoais, por assim dizer,
‫aqui temos quatro objetos pessoais.
‫Um, dois, três e quatro.
‫E então adicionamos todos eles a uma lista.
‫Portanto, eles têm nomes diferentes, bem como idades diferentes aqui.
‫Portanto, agora queremos realmente filtrar essas pessoas com base em sua idade, por exemplo, exibir os adultos
‫apenas com 18 anos ou mais ou os menores com menos de 18 anos.
‫Já que você deseja aplicar filtros diferentes, vamos criar um método chamado pessoas de exibição.
‫Esse método pegará a lista de pessoas e um filtro como delegado e, em seguida, filtrará a lista de pessoas
‫com base nesse filtro.
‫Então, também queremos adicionar uma string chamada título para fazer as coisas parecerem mais organizadas no conselho.
‫Portanto, antes de mais nada, deixe-me configurar o cabeçalho do meu método aqui.
‫Portanto, temos aqui o método display people e exigimos uma string, a lista de pessoas e o delegado de
‫filtro que chamarei de filtro.
‫Agora, o que eu quero fazer aqui?
‫Bem, antes de mais nada, vou apenas escrever o título.
‫E então vou passar por todas as pessoas que estão dentro da minha lista pessoal aqui.
‫E vou verificar se o filtro funciona com a pessoa que passamos.
‫Portanto, aqui vamos apenas dizer o nome da pessoa e também a idade dela.
‫E agora podemos prosseguir e definir alguns métodos que usaremos como filtros.
‫OK, então um será para os mineiros.
‫Então aqui está o mineiro.
‫Então, pegamos a pessoa e verificamos sua idade em relação aos 18 anos.
‫E se for menor, então sabemos que precisamos voltar.
‫Verdadeiro.
‫O que significa que a pessoa é um mineiro, caso contrário, retornaremos falso.
‫OK, então esse será o único filtro.
‫Então, vamos criar outro filtro para adultos, como sabonete, e agora outro filtro para idosos, digamos,
‫pessoas com mais de 65 anos.
‫Tipo, agora o método principal, vamos chamar o método display people algumas vezes, aquele que acabamos de
‫criar, este aqui.
‫Portanto, vamos prosseguir com nosso método principal.
‫E aqui vou mostrar as pessoas e aqui vou apenas passar o título.
‫Vou apenas dizer crianças, por exemplo, estou passando na lista de pessoas, bem como no meu filtro.
‫Então aqui está o meu filtro menor e eu o chamo de menor assim.
‫E agora vamos dar uma olhada.
‫Vamos ver se mostra nossos filhos e apenas este lugar, Walter, de 12 anos.
‫OK, então esse filtro funcionou.
‫Veja, passamos em um método que não precisávamos passar em nenhum parâmetro para esse método porque o passamos na
‫posição de um delegado para que ele pudesse apenas filtrar o delegado.
‫Deixe-me rolar um pouco para que você possa ver que está um pouco melhor.
‫Portanto, aqui precisamos passar e filtrar delegados, o que significa que podemos passar um método que
‫segue apenas a descrição dos delegados de filtro, o que significa que ele só precisa passar um booleano e precisa
‫ter um parâmetro do tipo pessoa.
‫E isso é exatamente o que nossos métodos de filtros como os chamei aqui estão fazendo.
‫Eles retornam um booleano e exigem a pessoa P, então se o menor não estivesse seguindo a estrutura, isso não
‫funcionaria.
‫Então, se eu fosse me livrar disso e retornar verdadeiro aqui, por exemplo, então isso não funcionaria.
‫Veja aqui, este é o Mörner que pode converter grupos de métodos em programas que filtram delegados, de forma
‫que não siga as instruções de nossos delegados.
‫Tudo bem, agora vamos fazer a mesma coisa com nosso outro tipo de filtro.
‫Então, primeiro de tudo, com adultos e depois com idosos, então vamos olhar para isso.
‫Vemos crianças, Walter, adultos, Aiden e Anatoliy, e então os idosos apenas se sentam e ele tem sessenta e nove anos.
‫Então é isso para uma pequena introdução para os delegados.
‫Mas você pode notar um padrão irritante que temos aqui e vamos eliminá-lo na próxima aula,
‫que é o padrão de método anônimo.
‫Então Segou aí.