‫Bu derse geri döndüğümüzde, bir kişi listesini filtrelemek için kendi delegelerimizi oluşturacağız ve bu bize delegelerin
‫kaputun altında nasıl çalıştığını daha iyi anlamamızı sağlayacak.
‫Şimdi elimizdeki aşağıdaki sınıfı ele alalım.
‫Yani hem isim özelliği hem de yaş özelliği olan çok basit bir sınıf person.
‫Burada sadece iki mülk var.
‫Bu yüzden insanları yaşlarına göre filtrelemek için kendi delegelerimizi oluşturmak istiyoruz.
‫Filtre delegelerimiz parametre olarak bir kişi alacak ve yaşla ilgili koşul karşılanırsa bir bool döndüreceğiz.
‫Durum tam olarak nedir?
‫Kod, örneğin bir web sayfasındaki bir listeyi filtrelemek için kullanılabileceğinden ve filtreleme özelliği hızla
‫değişebileceğinden umurumuzda değil.
‫Delegelerin güzelliği de tam olarak bu.
‫Ne lüks ama.
‫Tamam.
‫Şimdi delege tipimizi tanımlayalım.
‫Bu nedenle, devam edeceğim ve bunun Boolean türünde bir temsilci olacağını söyleyeceğim.
‫Ben buna filtre temsilcisi diyeceğim.
‫Ve bunun için bir kişi gerekecek.
‫Yani P adında bir kişi nesnesi.
‫Şimdi devam edelim ve tabiri caizse insanlardan, kişi nesnelerinden oluşan küçük bir liste oluşturalım.
‫Burada dört kişi nesnemiz var.
‫P bir, P iki, P üç ve P dört.
‫Ve sonra hepsini bir listeye ekliyoruz.
‫Yani burada hem farklı isimler hem de farklı yaşlar var.
‫Şimdi bu kişileri yaşlarına göre filtrelemek istiyoruz.
‫Örneğin, yalnızca 18 yaş ve üstü yetişkinleri veya yalnızca 18 yaş altı reşit olmayanları görüntüleyin.
‫Farklı filtreler uygulamak istediğimiz için, aslında display people adında bir yöntem oluşturalım.
‫Bu yöntem, kişi listesini ve bir filtreyi temsilci olarak alır ve ardından kişi listesini bu
‫filtreye göre filtreler.
‫Bu nedenle, konsolda işlerin daha düzenli görünmesini sağlamak için title adlı bir dize de eklemek istiyoruz.
‫Öncelikle, yöntemimin başlığını burada ayarlamama izin verin.
‫İşte burada insanları görüntüleme yöntemimiz var.
‫Bir dize, kişi listesi ve filtre olarak adlandıracağım filtre delegesi gerektirecektir.
‫Şimdi, burada ne yapmak istiyorum?
‫Öncelikle, sadece başlığı yazacağım.
‫Sonra da buradaki kişisel listemde yer alan tüm kişilerin üzerinden geçeceğim.
‫Ve filtrenin geçtiğimiz kişiyle çalışıp çalışmadığını kontrol edeceğim.
‫Bu yüzden burada sadece kişinin adını ve kaç yaşında olduğunu söyleyeceğiz.
‫Şimdi devam edebilir ve filtre olarak kullanacağımız birkaç yöntem tanımlayabiliriz.
‫Yani bir tanesi madenciler için olacak.
‫İşte Madenci.
‫Bu yüzden kişiyi içeri alıyoruz ve yaşını 18'e göre kontrol ediyoruz.
‫Daha düşükse, geri dönmemiz gerektiğini biliriz.
‫Doğru, bu da kişinin bir madenci olduğu anlamına gelir.
‫Aksi takdirde false döndürürüz.
‫Yani tek filtre bu olacak.
‫O zaman yetişkinler için şu şekilde başka bir filtre oluşturalım.
‫Şimdi de yaşlılar için bir başka filtre, diyelim ki 65 yaş üstü insanlar.
‫Sevdim.
‫Şimdi main metodunda, display people metodunu birkaç kez çağıralım, az önce burada oluşturduğumuz
‫metodu.
‫Şimdi ana yöntemimize geçelim.
‫Ve burada insanları görüntüleyeceğim ve burada sadece başlığı geçeceğim.
‫Örneğin çocuklar diyeceğim, filtrelerimin yanı sıra kişiler listesinden de geçiyorum.
‫İşte benim is minor filtrem ve ben buna is minor diyorum.
‫Ve şimdi kontrol edelim.
‫Bunu çalıştıralım ve çocuklarımızı gösterip göstermeyeceğini görelim.
‫Ve sadece 12 yaşındaki Walter'ı gösteriyor.
‫Tamam, filtre işe yaradı.
‫Gördüğünüz gibi, bir metot geçirdik, bu metoda herhangi bir parametre geçirmemiz gerekmedi çünkü
‫onu bir delege konumunda geçirdik.
‫İşte burada, bu filtre temsilcisi, biraz daha iyi görebilmeniz için biraz dışarı kaydırmama izin verin.
‫Yani burada filtre delegesine geçmemiz gerekiyor, bu da sadece filtre delegelerinin açıklamasını
‫takip eden bir metot geçirebileceğimiz anlamına geliyor, yani sadece bir ebullient geçirmesi ve person tipinde bir
‫parametreye sahip olması gerekiyor.
‫İşte bizim burada slash filtreleri olarak adlandırdığım yöntemlerimiz de tam olarak bunu yapıyor.
‫Bir boolean döndürürler ve P kişisi gerektirirler.
‫Yani eğer minör yapıya uymasaydı, bu işe yaramazdı.
‫Dolayısıyla, örneğin bundan kurtulup true değerini döndürürsem, bu çalışmayacaktır.
‫Gördüğünüz gibi burada diyor ki küçük iyi yöntem grubunu program nokta filtresi delegesine dönüştürebilir, böylece
‫delegelerimizin talimatlarını takip etmez.
‫Tamam.
‫Şimdi aynı şeyi diğer filtre türlerimiz için de yapalım.
‫Yani öncelikle yetişkinlerle, sonra da yaşlılarla.
‫Bir bakalım.
‫Ve çocukları, Walter'ı, yetişkinleri, Aiden ve Anatoly'yi ve sonra yaşlıları sadece Siv'i görüyoruz.
‫Ve o 69 yaşında.
‫Delegeler için küçük bir tanıtım yazısı bu kadar.
‫Ancak burada can sıkıcı bir kalıp olduğunu fark edebilirsiniz ve bunu bir sonraki derste ortadan kaldıracağız,
‫bu da anonim yöntemler kalıbıdır.
‫Orada görüşürüz.