Geef een voorbeeld van het gebruik van delegates in C#.
sobes.tech AI
Antwoord van AI
Delegaten zijn typeveilige pointers naar methoden. Ze maken het mogelijk om methoden als argumenten door te geven, ze aan variabelen toe te wijzen en via deze variabelen aan te roepen. Delegaten worden veel gebruikt voor het maken van gebeurtenissen, callbacks en asynchrone programmering.
Voorbeeld van het gebruik van een delegate:
-
Declaratie van de delegate: We definiëren de handtekening van de methode waarnaar de delegate kan wijzen.
public delegate int MyDelegate(int x, int y); -
Definitie van methoden: We maken methoden met de handtekening die overeenkomt met de delegate.
public class Calculator { public int Add(int a, int b) { return a + b; } public int Subtract(int a, int b) { return a - b; } } -
Gebruik van de delegate: We maken een instantie van de delegate en wijzen er een methode aan toe. Vervolgens roepen we de methode aan via de delegate.
public class Program { public static void Main(string[] args) { Calculator calc = new Calculator(); // Maak een delegate-instantie en wijs er de Add-methode aan toe MyDelegate del = new MyDelegate(calc.Add); // Roep de Add-methode aan via de delegate int result1 = del(10, 5); // result1 = 15 Console.WriteLine($"Resultaat van de optelling: {result1}"); // Wijs de delegate opnieuw toe aan de Subtract-methode del = calc.Subtract; // Roep de Subtract-methode aan via de delegate int result2 = del(10, 5); // result2 = 5 Console.WriteLine($"Resultaat van de aftrekking: {result2}"); } }
In dit voorbeeld kan MyDelegate wijzen naar elke methode die twee gehele getalargumenten (int x, int y) accepteert en een geheel getal (int) retourneert. We maken twee delegate-instanties (del), wijzen ze de methoden Add en Subtract toe, en gebruiken vervolgens de delegate om deze methoden aan te roepen.