Sobes.tech
Junior

C#-də nümayəndə nə içərə bilər?

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində delegat, müəyyən bir imzaya (qaytarmalı tip və parametr tipləri) malik metodlara istinadları təmsil edən bir növdür. O, aşağıdakıları ehtiva edə bilər:

  1. Statik metoda istinad:
    // Statik metod
    public static void StaticMethod(int x) { }
    
    // Statik metoda istinad edən delegat
    MyDelegate d = StaticMethod;
    
  2. İnstance metoda istinad:
    // İnstance metodu olan sinif
    public class MyClass
    {
        public void InstanceMethod(int y) { }
    }
    
    // Sinifin nümunəsini yaratmaq
    MyClass obj = new MyClass();
    
    // İnstance metoda istinad edən delegat
    MyDelegate d = obj.InstanceMethod;
    
  3. Çoxsaylı metodların çağırış siyahısı (invocation list): C#-də delegat əslində çoxkanallıdır. O, bir neçə metoda istinad edə bilər. Belə delegat çağırıldıqda, siyahıdakı bütün metodlar çağrılır və onların əlavə olunma ardıcıllığında icra olunur.
    public delegate void MyDelegate(int value);
    
    public static void Method1(int z) { }
    public static void Method2(int w) { }
    
    // Çoxkanallı delegatın yaradılması
    MyDelegate multiDelegate = Method1;
    multiDelegate += Method2; // İkinci metodu əlavə etmək
    
    // Delegat çağırıldıqda, hər iki metod çağrılır
    multiDelegate(10);