Sobes.tech
Junior

C# тилинде делегаттарды колдонуу мисалын келтириңиз.

sobes.tech AI

AIден жооп

Делегаттар — бул ыктымалдуу түрдө корголгон ыкмаларды көрсөтүүчү көрсөткүчтөр. Алар ыкмаларды аргумент катары өткөрүүгө, алардын маанилерин өзгөрмөлөргө жазууга жана ошол өзгөрмөлөр аркылуу чакырууга мүмкүндүк берет. Делегаттар кеңири колдонулат окуяларды түзүүдө, кері чакырууларда жана асинхрондук программалоодо:

Мисал катары делегаттын колдонулушу:

  1. Делегатты жарыялоо: Делегат көрсөтө турган ыкманын сигнатурасын аныктоо:

    public delegate int MyDelegate(int x, int y);
    
  2. Ыкмалардын аныктамасы: Делегатка ылайыктуу сигнатура менен ыкмалар түзүү:

    public class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    
        public int Subtract(int a, int b)
        {
            return a - b;
        }
    }
    
  3. Делегатты колдонуу: Делегаттын экземплярын түзүп, ага ыкманы берүү:

    public class Program
    {
        public static void Main(string[] args)
        {
            Calculator calc = new Calculator();
    
            // Add ыкмасына делегат түзүү жана аны берүү
            MyDelegate del = new MyDelegate(calc.Add);
    
            // Делегат аркылуу Add ыкмасын чакыруу
            int result1 = del(10, 5); // result1 = 15
            Console.WriteLine($"Жыйынтык кошуу: {result1}");
    
            // Делегатты Subtract ыкмасына өзгөртүү
            del = calc.Subtract;
    
            // Subtract ыкмасын чакыруу
            int result2 = del(10, 5); // result2 = 5
            Console.WriteLine($"Жыйынтык чыгуу: {result2}");
        }
    }
    

Бул мисалда MyDelegate кез келген эки бүтүн аргумент кабыл алып, бүтүн сан кайтарган ыкмага көрсөтө алат (int x, int y). Биз эки делегаттын экземплярын түзүп, аларга Add жана Subtract ыкмаларын бердик, жана андан соң делегатты ошол ыкмаларды чакырууга колдондук.