‫Tamam.
‫Delegeler hakkında genel bir fikir edindiğimize göre, şimdi onları iş başında görelim.
‫Ve bunları daha iyi anlamak için, C-sharp'ta zaten var olan bir temsilci kullanarak başlayacağız.
‫Öncelikle, adlar adı verilen basit bir dizgi listesi tanımlayarak başlayalım.
‫Ve sonra bunu kullanacağım.
‫Diyelim ki içinden isimleri çıkarmak istiyorum.
‫İşte burada bu remove all yöntemi var ve bu remove all yöntemi, belirtilen yüklem tarafından tanımlanan
‫koşullarla eşleşen tüm öğeleri kaldırmamı sağlıyor.
‫İşte burada bu yeşil yüklem anahtar sözcüğünü görüyorsunuz.
‫İşte temel olarak geçebileceğimiz şey.
‫Yani bu temelde burada beklenen yüklem olan delegeler sadece beklenen delegenin
‫adıdır.
‫Üzerine tıkladığınızda, burada bulacaksınız.
‫Genel temsilci havuzu yüklemi.
‫Burada, yüklemin RT'nin bir nesnesini alan bir temsilci olduğunu görebiliriz, bu da belirli bir tür anlamına
‫gelir.
‫Bu durumda, RT liste elemanlarımızın türüdür.
‫Yani bizim durumumuzda bu bir dizedir ve bir boolean döndürür.
‫Dolayısıyla, remove all yöntemini çağırdığımızda, bu yüklem listemizdeki her isim için çağrılacaktır.
‫Belgeleri okursak, bu yüklem tarafından döndürülen bool değerinin bu öğenin listeden çıkarılıp
‫çıkarılmayacağını belirleyeceğini öğreneceğiz.
‫True döndürürse, öğe kaldırılacaktır.
‫Ve listemizdeki isimlerimizin kaderini belirlemek için bu kuralları yazmak bizim işimiz.
‫Yani buradaki isimlerden Aidan'ın if klasörü ve Anatoly.
‫Sonuçta, remove all yönteminin arkasındaki kodu yazan kişiler, istediğimiz kuralları belirlemek için zihnimizi
‫okuyamazlar.
‫Aynen öyle.
‫Bu nedenle, predicate delegate'in tanımıyla eşleşen kendi yöntemimizi oluşturacağız ve
‫bunu remove all yöntemine aktaracağız.
‫Diyelim ki içinde I harfi geçen tüm isimleri silmek istiyoruz, bu yüzden filtreleme yöntemimizi şu şekilde yazabiliriz.
‫Bu yüzden sadece bir dize alacak statik bir havuz filtresi oluşturuyoruz.
‫Yani bu bizim filter adlı metodumuz ve dizenin I harfini içerip içermediğini döndürüyoruz.
‫Ve burada, doğru veya yanlış döndürecek bir boolean döndürecek contains yöntemini kullanıyoruz.
‫Yani burada C içerir, bir dize alır, bunu içerip içermediğini kontrol eder ve sonra bir boolean döndürür.
‫Yani burada yaptığımız şey aslında bir boolean döndürmektir.
‫Ve parametre olarak bir dize alır.
‫Yani temel olarak geri döneceğiz.
‫Dize I içeriyorsa True olur ve ardından remove all yöntemi bu filtre yöntemini listemizdeki tüm öğeler
‫üzerinde çalıştırır.
‫Şimdi filtre yöntemimizi burada bulunan ve henüz tamamlanmamış olan ve hala kendisine aktarabileceğimiz
‫bir delegeye ihtiyaç duyan remove all yöntemine aktaralım.
‫Ve sadece gözlem için remove all yönteminden önce ve sonra bir for each döngüsü ekleyelim.
‫Bu yüzden buraya daha önce böyle olduğunu söylediğim küçük bir kod ekleyeceğim.
‫Böylece konsola listemizdeki tüm isimleri içeren bir isim listesi yazıyoruz.
‫Sonra tüm bunları kaldırıyoruz, belirli bir filtreyi takip ediyoruz ve bir kez daha çalıştırıyoruz.
‫Şimdi geçirdiğimiz bu filtre, görüyorsunuz, bir yöntem olmasına rağmen burada parantez kullanmıyoruz.
‫Yani temel olarak burada bir metodu parametre olarak geçiriyoruz ve geçirdiğimiz dizenin bir AI içerip
‫içermediğini kontrol ediyoruz.
‫Şimdi çalıştıralım ve hangi isimlerin I içerdiğini görelim.
‫Walter ve Anatoly'nin ajanları var.
‫Ve bundan sonra Walter hariç hepsini çıkardık, çünkü Walter göz içermeyen bir
‫dizedir.
‫Ve temelde önceden var olan bir delegeyi bu şekilde kullandık.
‫Ve şimdi, kendisine aktarabileceğimiz bir temsilci gerektiren bir yöntem kullandık.
‫Yani temelde olan şey, bu dizeler listesini burada adlandırmaktır.
‫Burada kullandığımız filtre ile hepsinin çıkarılması ve tek tek kontrol edilmesi sağlandı.
‫Böylece, isimlerdeki her bir değeri birbiri ardına filtre yöntemimize geçirdi, bu filtreden geçirdi ve silmesi
‫gerekip gerekmediğini döndürdü.
‫Yani bu boolean, aktarılan dizede I varsa doğru olacaktır.
‫Yani şu anda isimler listemizde baktığımız dize ve eğer buradaki true değerini döndürürse, filtre metodu
‫true değerini döndürecek ve bu da remove all metodunun ismi isimler listesinden kaldırmasına
‫yol açacaktır.
‫Pekala, bu sadece bir delege örneğiydi.
‫Ve görüyorsunuz, burada özellikle ne istediğimizi belirtmedik.
‫Yani hangi dizeyi almak istediğimizi söylemedik, örneğin name başlar ve sonra index veya başka bir şey diyerek.
‫Bunların hiçbirini yapmak zorunda kalmadık çünkü her şeyi kaldırmak burada bir temsilci bekliyor ve biz de ona bunu
‫aktardık.
‫Bu hala biraz kafa karıştırıcıysa, endişelenmeyin.
‫Delegeleri biraz daha iyi anlamanıza kesinlikle yardımcı olacak birkaç örneğimiz
‫daha olacak, çünkü bazılarını kendimiz yaratacağız ve o zaman çok daha anlamlı olacak.
‫Bir sonraki videoda görüşmek üzere.