Podaj przykład użycia delegatów w C#.
sobes.tech AI
Odpowiedź od AI
Delegaty są bezpiecznymi typowo wskaźnikami na metody. Pozwalają na przekazywanie metod jako argumentów, przypisywanie ich do zmiennych i wywoływanie przez te zmienne. Delegaty są szeroko używane do tworzenia zdarzeń, wywołań zwrotnych i programowania asynchronicznego.
Przykład użycia delegata:
-
Deklaracja delegata: Definiujemy sygnaturę metody, na którą może wskazywać delegat.
public delegate int MyDelegate(int x, int y); -
Definicja metod: Tworzymy metody o sygnaturze odpowiadającej delegatowi.
public class Calculator { public int Add(int a, int b) { return a + b; } public int Subtract(int a, int b) { return a - b; } } -
Użycie delegata: Tworzymy instancję delegata i przypisujemy mu metodę. Następnie wywołujemy metodę przez delegata.
public class Program { public static void Main(string[] args) { Calculator calc = new Calculator(); // Tworzymy instancję delegata i przypisujemy mu metodę Add MyDelegate del = new MyDelegate(calc.Add); // Wywołujemy metodę Add przez delegata int result1 = del(10, 5); // result1 = 15 Console.WriteLine($"Wynik dodawania: {result1}"); // Przypisujemy delegat do metody Subtract del = calc.Subtract; // Wywołujemy metodę Subtract przez delegata int result2 = del(10, 5); // result2 = 5 Console.WriteLine($"Wynik odejmowania: {result2}"); } }
W tym przykładzie MyDelegate może wskazywać na dowolną metodę, która przyjmuje dwa argumenty typu int (int x, int y) i zwraca wartość typu int. Tworzymy dwie instancje delegata (del), przypisując im metody Add i Subtract, a następnie używamy delegata do wywołania tych metod.