c delegate tutorial how instantiate
Bu Eğitimde Basit Kod Örneklerinin Yardımıyla C # Temsilcisinin Nasıl Kullanılacağı Açıklanmaktadır. Ayrıca C # 'da Çok Noktaya Yayın Delegeleri Hakkında Bilgi Edineceksiniz:
C # Delegeleri Nedir?
C # 'da, temsilciler C ++' da bulunan işaretçilerle benzerdir. Temel olarak, başka bir yönteme referans içeren bir referans türü değişkendir.
Ayrıca, çalışma süresi boyunca referansı değiştirilemez. System.Delegate sınıfı içinde mevcuttur. Bir temsilci, geri arama işlevini veya bir olay işleyicisini işlemek için kullanılır.
Bir işlevin işaretçisi gibidir ve delegate anahtar sözcüğü ve ardından işlevin imzası kullanılarak bildirilebilir.
=> C # Eğitim Serisinin Tamamını Buradan Okuyun
Temsilcinin beyanı, temsilci tarafından başvurulabilecek yöntemi de belirler, yani bir temsilciyle aynı imzaya sahip bir referans yöntemi olabilir.
Ne öğreneceksin:
C # 'da Temsilci Örnekleme
Temsilci bildirildikten sonra, yeni anahtar sözcükle somutlaştırılabilir ve ardından yöntemle ilişkilendirilmesi gerekir. Tıpkı bir yöntem gibi, ifadenin bir argüman geçirmesi gerekir.
Bir Temsilciyi Çağırmak
Bir temsilci, tıpkı bir yöntem gibi çağrılabilir.
Misal:
class Program { public delegate void methodDelegate(); public static void Main(string() args) { methodDelegate md = new methodDelegate(method); md.Invoke(); } public static void method() { Console.WriteLine('Delegate pointing to method'); } }
Çıktı
Yukarıdaki programın çıktısı şöyle olacaktır:
Yönteme işaret eden temsilci
Açıklama
3 yıllık deneyim için android mülakat soruları ve cevapları
Yukarıdaki programda, delegenin bir nesnesini oluşturduk ve onu çağırmamız gereken yönteme doğru işaret ettik. Daha sonra, 'delegate' kullanarak yöntemi çağırmak için invoke () 'yi kullandık.
Neden C # Delege Kullanmamız Gerekir?
Yöntemi doğrudan ana yöntemimizden çağırabilirdik, ancak neden gerçekten bir temsilci kullanmamız gerekiyor?
Basit bir dilde delege, iki grup arasındaki iletişim için bir temsilci anlamına gelir. Bir programlama bağlamında bile benzer bir role sahiptir. Geri aramalar için kullanılır.
Uzun süredir devam eden bir yöntemimiz olduğunu ve bu işlemin ilerlemesini sürekli olarak kontrol etmemiz gerektiğini varsayalım. Bunu yapmak için bir temsilci kullanarak geri aramayı kullanırız. Bu, uzun vadeli yöntemi takip etmemizi sağlar.
Örneğin:
public class Program { One on = new One(); public static void Main(string() args) { One.generateNumbers(callDelegate); Console.ReadLine(); } public static void callDelegate(int j) { Console.WriteLine('The current random number is :' + j); } } public class One { public delegate void callingDelegate(int j); public static void generateNumbers(callingDelegate cd) { Random rn = new Random(); int i = 0; int j = 0; while (i <10) { j = rn.Next(9999); cd(j); i++; } } }
Yukarıdaki programın çıktısı şöyle olacaktır:
Çıktı
Mevcut rastgele sayı: 1559
Mevcut rastgele sayı: 6127
Şu anki rasgele sayı: 6639
Mevcut rastgele sayı: 3963
Şu anki rasgele sayı: 4479
Mevcut rasgele sayı: 6898
Mevcut rastgele sayı: 1390
Mevcut rastgele sayı: 6409
Şu anki rastgele sayı: 2629
Mevcut rastgele sayı: 5464
Yukarıdaki programda, belirli bir yineleme için rastgele bir tamsayı oluşturan 'generateNumber' yönteminden bir geri arama almak için bir temsilci kullandık. Bu yineleme çok büyük olabilir. Bu nedenle, buradaki temsilci, yöntemde rastgele bir tam sayı üretildiğinde her seferinde geri arama almak için kullanılır.
C #’ta Çok Noktaya Yayın Temsilcisi Nedir?
Bir temsilci, birkaç farklı yöntemi işaret edebilir. Birkaç farklı yöntemi işaret eden bir temsilci, çok noktaya yayın temsilcisi olarak bilinir. Temsilciye bir işlev eklemek için '+' işareti (operatör) kullanılır ve '-' işareti (işleç), delegeye eklenmiş mevcut herhangi bir işlevi kaldırmak için kullanılır.
Çok noktaya yayın delegesi, işaret edildiği işlevleri çağırır ve yalnızca aynı tür işlevler bir çoklu yayın delege oluşturmak için birleştirilebilir. Bu, tek bir temsilci çağırarak çağrılması gereken yöntemlerin bir listesini oluşturmak için kullanılabilir.
Bunu anlamak için basit bir programa bakalım:
Program
public class Program { delegate void IntegerCounter(int n); public static void method_A(int a) { a = a + 5; Console.WriteLine('the value of first method {0}', a); } public static void method_B(int b) { b = b * 5; Console.WriteLine('the value of second method {0}', b); } public static void Main(string() args) { //creating instance of the delegate IntegerCounter x; IntegerCounter y = new IntegerCounter(method_A); IntegerCounter z = new IntegerCounter(method_B); x = y; x += z; x(10); Console.ReadLine(); } }
Çıktı
ilk yöntemin değeri 5
ikinci yöntemin değeri 50
Yukarıdaki programda, bir temsilci IntegerCounter ilan ettik. Ardından tamsayı değeri üzerinde belirli bir işlemi gerçekleştiren iki farklı yöntem oluşturduk. Daha sonra ana yöntemde, tanımlanan her iki yöntem için de delegeyi başlattık.
örnekli gereksinim izlenebilirlik matrisi şablonu
Daha sonra ilk başlatılan delege yöntemini işaret etmek için delegate nesnesini kullandık ve ardından çok noktaya yayın delegesi için “+” işaretini kullandık ve başka bir yöntemi işaret ettik. Daha sonra bir tamsayı parametresi geçirirsek, her iki yöntem de aynı parametreyi alacak ve çalıştırılacaktır.
Sonuç
Temsilci, bir işlevin göstericisidir. Temsilciyi kullanacak yöntem aynı parametreye ve dönüş türüne sahip olmalıdır.
Temsilci, bir işleve benzer şekilde bildirilebilir ve benzer şekilde çağrılabilir. Bir çok noktaya yayın temsilcisi, temsilciyi birden çok yöntemi işaret etmek için kullandığımızda ve çok noktaya yayını kullanmak için artı bir '+' operatörünün kullanılmasıdır.
=> C # Eğitim Öğreticilerinin Tüm Serisini Buradan Keşfedin
Önerilen Kaynaklar
- Günlüklerle Selenium Komut Dosyalarında Hata Ayıklama (Log4j Eğitimi) - Selenium Eğitimi # 26
- Etkili Selenium Komut Dosyası Oluşturma ve Sorun Giderme Senaryoları - Selenium Eğitimi # 27
- İlk WebDriver Komut Dosyamızın Uygulanması - Selenium WebDriver Eğitimi # 10
- Eclipse ile WebDriver Tam Kurulum ve Kurulum - Selenium Eğitimi # 9
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- Jenerikler ve Test Takımları Oluşturma - Selenium Eğitimi # 22
- SoapUI Harika Komut Dosyalarında İstisna Nasıl İşlenir - SoapUI Eğitimi # 11
- Selenium ile TestLink Test Durumunu Yürütme Durumu Uzaktan Nasıl Güncellenir - Öğretici # 3