Multicasting Delegate, normal delegate’in bir uzantısıdır (normal delagate, Single Cast Delegate olarak da adlandırılır.). Kullanıcının tek bir çağrıda birden fazla metodu işaret etmesine yardımcı olur.
Delegate Kullanımı İçin Bakınız:
Özellikleri:
- Delegetler birleştirilir ve bir delegeti çağırdığınızda, metotların tam listesi çağrılır.
- Tüm metotlar İlk Giren İlk Çıkar – First in First Out (FIFO) sırasına göre çağrılır.
- ‘+’ veya ‘+=’ Operatörü, metotları delegetlere eklemek için kullanılır.
- ‘–’ veya ‘-=’ operatörü, metotları delegetler listesinden kaldırmak için kullanılır.
Not: Multicasting Delegate’in dönüş türünün Void olması gerektiğini unutmayın, aksi takdirde bir çalışma zamanı istisnası atar.
Multicasting Delegate Örnek Kullanım
internal class Program
{
// "HesaplaDelegate" Delegate
public delegate void HesaplaDelegate(int en, int boy);
// "Alan" method
public static void Alan(int en, int boy)
{
Console.WriteLine("Alan: {0}", (en * boy));
}
// "Cevre" method
public static void Cevre(int en, int boy)
{
Console.WriteLine("Çevre {0} ", 2 * (en + boy));
}
public static void Main(String[] args)
{
// Delagete objesi oluşturuyoruz.
// parametre olarak Alan methodunu gönderiyoruz.
HesaplaDelegate hesaplaDelegate = new HesaplaDelegate(Alan);
// Oluşturduğumuz delegate objesine ayrıca Cevre metodunu da ekliyoruz.
hesaplaDelegate += Cevre;
hesaplaDelegate(50, 20);
}
}
Sonuç:
Alan: 1000
Çevre 140