Sobes.tech
Junior

Pateikite pavyzdį, kaip naudoti delegatus C# kalboje.

sobes.tech AI

Atsakymas iš AI

Delegatai yra tipui saugūs metodų nuorodų tipai. Jie leidžia perduoti metodus kaip argumentus, priskirti juos kintamiesiems ir iškviesti juos per šiuos kintamuosius. Delegatai plačiai naudojami įvykių kūrimui, atgalinių iškvietimų ir asinchroninio programavimo srityse:

Delegato naudojimo pavyzdys:

  1. Delegato deklaravimas: Apibrėžkite metodo signatūrą, į kurią gali nurodyti delegatas:

    public delegate int MyDelegate(int x, int y);
    
  2. Metodų apibrėžimas: Sukurkite metodus su atitinkama signatūra:

    public class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    
        public int Subtract(int a, int b)
        {
            return a - b;
        }
    }
    
  3. Delegato naudojimas: Sukurkite delegato egzempliorių ir priskirkite jam metodą. Tada iškvieskite metodą per delegatą:

    public class Program
    {
        public static void Main(string[] args)
        {
            Calculator calc = new Calculator();
    
            // Sukurkite delegato egzempliorių ir priskirkite Add metodą
            MyDelegate del = new MyDelegate(calc.Add);
    
            // Iškvieskite Add metodą per delegatą
            int result1 = del(10, 5); // result1 = 15
            Console.WriteLine($"Sudėties rezultatas: {result1}");
    
            // Pakeiskite delegatą į Subtract
            del = calc.Subtract;
    
            // Iškvieskite Subtract metodą per delegatą
            int result2 = del(10, 5); // result2 = 5
            Console.WriteLine($"Atimties rezultatas: {result2}");
        }
    }
    

Šiame pavyzdyje MyDelegate gali nurodyti bet kurį metodą, kuris priima du sveikus skaičius (int x, int y) ir grąžina sveiką skaičių (int). Mes sukūrėme du delegato egzempliorius (del), priskyrėme jiems Add ir Subtract metodus, ir tada naudojome delegatą šių metodų iškvietimui.