‫Tamam.
‫Peki delege nedir?
‫Basit bir ifadeyle, delege bir yönteme referans tutabilen bir türdür.
‫Ve temsilciyi çağırdığınızda, başvurulan yöntem çağrılacaktır.
‫Diğer geliştiricilerin mobil uygulamalar oluşturmak için kullanabileceği bir UI kütüphanesi geliştirdiğimizi ve diğer geliştiricilerin
‫kullanabileceği UI öğelerinden birinin bir düğme olduğunu düşünün.
‫Ekrandaki yeşil düğmeyi oluşturmak için kullanılan düğme sınıfının arkasındaki koda
‫bakarsak, bunun gibi bir düğme aşağıdaki özelliklere sahip olacaktır: gönderilen değerle birlikte metin adı
‫verilen bir dize, yeşilimsi bir şey olan arka renk adı verilen bir renk ve tabii ki iki, düğmenin genişliği ve yüksekliği için boyut W ve boyut H
‫olarak adlandırılır.
‫Şimdi, burada eksik olan şey, düğmeye tıklandığında yürütülmesi gereken kodu içeren bir yöntemdir.
‫Şimdi burada bir sorunumuz var.
‫Bu kullanıcı arayüzü sistemini yapan geliştiriciler olarak, kullanıcı arayüzü sistemimizi kullanan diğer geliştiricilerin düğmeye
‫tıklandığında ne yapmasını istediklerini bilemeyiz.
‫Bu nedenle, tıklama olayını normal bir yöntem olarak değil, bir temsilci olarak sağlamamız gerekir.
‫Ve bir delege, daha önce duyduğumuz gibi bir yönteme referans depolayabilen bir değişken olduğundan,
‫diğer geliştiriciler tıklandığında yürütülmesini istedikleri mantığı içeren bir yöntemin içine kendi
‫uygulamalarını yazabilir ve bunu tıklama delegesi eğik çizgi olayında düğmelere atayabilir.
‫Kendi tıklama temsilcimizi şu şekilde tanımlayabiliriz.
‫Şimdi bunu biraz parçalara ayıralım.
‫Bu private anahtar sözcüğüne belirtilen erişimi yazarak başlayacağız, ardından derleyiciye yeni bir tür tanımladığımızı
‫söyleyen delegate anahtar sözcüğü gelecek.
‫Ve son olarak, temsilcimizin saklayabileceği yöntemlerin türünü belirtmemiz gerekir.
‫Tip derken geri dönüş tipini kastediyorum ve Click Delegate'teki parametreler az önce tanımladığımız delegenin
‫adıdır.
‫Şimdi bir sonraki adım, yeni temsilci türünde bir değişken oluşturmaktır.
‫Yani C-sharp'ta herhangi bir değişkeni tanımladığımız gibi tanımlarız.
‫public ile başlayarak, oluşturduğumuz değişkenin türünü, yani tıklama delegesini belirtiriz.
‫Ve son olarak, tıklandığında değişken adı.
‫Yine, on Click Delegate türünde bir genel değişken tanımladık ve on Click olarak adlandırdık.
‫Bu değişken, dönüş türü void olduğu ve parametre almadığı sürece herhangi bir yönteme referans tutabilir
‫veya saklayabilir.
‫Aksi takdirde, bir float'ı bir in değişkeninin içinde saklamaya çalıştığımıza benzer bir hata alırız.
‫Peki bu yeni delegeyi nasıl kullanabiliriz?
‫Diyelim ki, UI sistemimizi kullanarak bu mobil uygulamayı geliştirmek için kullandığımız ID'de bir düğmeyi tuvalimize
‫sürükleyip bıraktık ve bu da bir düğme nesnesinin oluşturulmasıyla sonuçlandı.
‫Bu düğmenin adının gönder düğmesi olduğunu varsayalım.
‫Öyleyse önce düğmeye tıklandığında yürütülmesini istediğimiz mantığı ekleyelim.
‫Bizim durumumuzda, ağa bağlanmak, bir mesaj göndermek ve ardından kullanıcıya bir mesaj görüntülemek istiyoruz.
‫Yani şimdi Düğmeye Tıklama Gönder adında, henüz düğmeye hiçbir şekilde bağlı olmayan normal bir yöntemimiz
‫var.
‫Bunu düzeltmek için, yöntemimizi on Click Delegate türündeki on click değişkenine atamamız gerekir.
‫Yöntem adımızı parantezler olmadan yazdığımıza dikkat edin çünkü onu çağırmıyoruz, sadece referansını
‫doğru delegede saklıyoruz.
‫Şimdi kaputun altında, fare düğmenin üzerinde geziniyorsa ve fare tıklandıysa, UI sistemimiz gönder düğmemizin tıklama
‫temsilcisini çağıracak ve bu da karşılığında kendisine atanan herhangi bir yöntemi çağıracaktır.
‫Bu durumda, gönder düğmesine tıklanacak ve mesaj gönderildi iletişim kutusu görüntülenecektir.
‫Bu şekilde UI sistemimizi kullanan herkes kendi yöntemlerini oluşturabilir, ardından yöntemlerini temsilcimize
‫atayabilir ve koşullar doğru olduğunda bunları çağırabiliriz.
‫Tıklama etkinlikleriyle sınırlı değiliz.
‫Örneğin, uygulama başladığında veya kapandığında delegeler bile oluşturabiliriz.
‫Bu çok soyut bir örnekti, ancak bu genel olarak delegelerin gerçek bir kullanım durumudur.
‫Şimdi C-sharp'ta zaten var olan delegelerden birini nasıl kullanacağımızı öğreneceğiz.
‫Ve bundan sonra, bu örnekte yaptığımıza benzer şekilde kendi delegelerimizi oluşturmaya başlayacağız.
‫Bir sonraki videoda görüşmek üzere.