Junior
C#'ta bir delege ne içerebilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde delegat, belirli bir imzaya (dönüş tipi ve parametre tipleri) sahip yöntemlere referansları temsil eden bir türdür. İçerebilir:
- Statik metoda referans:
// Statik yöntem public static void StaticMethod(int x) { } // Statik metoda referans eden delegat MyDelegate d = StaticMethod; - Örnek metoda referans:
// Örnek metod içeren sınıf public class MyClass { public void InstanceMethod(int y) { } } // Sınıf örneği oluşturma MyClass obj = new MyClass(); // Örnek metoda referans eden delegat MyDelegate d = obj.InstanceMethod; - Çağrı listesi (invocation list) içeren birden fazla metod: C#'ta delegat aslında çok adresli (multicast) bir yapıdır. Birden fazla metoda referans içerebilir. Bu delegat çağrıldığında, listedeki tüm metodlar çağrılır ve eklenme sırasına göre çalıştırılır.
public delegate void MyDelegate(int value); public static void Method1(int z) { } public static void Method2(int w) { } // Çok adresli delegat oluşturma MyDelegate multiDelegate = Method1; multiDelegate += Method2; // İkinci metodu ekleme // Delegat çağrıldığında, her iki metod da çağrılır multiDelegate(10);