Multicasting Delegate (Çoklu Delegate)

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