Sobes.tech
Junior

Adj példát a delegátok használatára C#-ban.

sobes.tech MI

Válasz az MI-től

A delegate típusbiztonságos mutató módszerekre. Lehetővé teszi, hogy módszereket argumentumként adjunk át, változóknak rendeljük őket, és ezeken keresztül hívjuk meg őket. A delegate-ek széles körben használatosak események, visszahívások és aszinkron programozás létrehozására.

Delegát használatának példája:

  1. Delegát deklarálása: Meghatározzuk a metódus szignatúráját, amelyre a delegate mutathat.

    public delegate int MyDelegate(int x, int y);
    
  2. Metódusok definiálása: Olyan metódusokat hozunk létre, amelyek megfelelnek a delegate szignatúrájának.

    public class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    
        public int Subtract(int a, int b)
        {
            return a - b;
        }
    }
    
  3. Delegate használata: Létrehozunk egy delegate példányt, és hozzárendeljük egy metódushoz. Ezután a delegate segítségével hívjuk meg ezeket a metódusokat.

    public class Program
    {
        public static void Main(string[] args)
        {
            Calculator calc = new Calculator();
    
            // Delegate példány létrehozása és hozzárendelése az Add metódushoz
            MyDelegate del = new MyDelegate(calc.Add);
    
            // Az Add metódus hívása delegate-en keresztül
            int result1 = del(10, 5); // result1 = 15
            Console.WriteLine($"Összeg eredménye: {result1}");
    
            // Delegate újra hozzárendelése a Subtract metódushoz
            del = calc.Subtract;
    
            // A Subtract metódus hívása delegate-en keresztül
            int result2 = del(10, 5); // result2 = 5
            Console.WriteLine($"Kivonás eredménye: {result2}");
        }
    }
    

Ebben a példában a MyDelegate bármely olyan metódusra mutathat, amely két egész szám argumentumot fogad (int x, int y) és egész számot ad vissza (int). Két delegate példányt hozunk létre (del), hozzárendeljük az Add és Subtract metódusokat, majd ezeket a delegate-eket használjuk a metódusok meghívására.