Sobes.tech
Junior

Geben Sie ein Beispiel für die Verwendung von Delegaten in C#.

sobes.tech KI

Antwort von AI

Delegates sind typsichere Zeiger auf Methoden. Sie ermöglichen das Übergeben von Methoden als Argumente, das Zuweisen an Variablen und das Aufrufen über diese Variablen. Delegates werden häufig für Ereignisse, Rückrufe und asynchrone Programmierung verwendet.

Beispiel für die Verwendung eines Delegates:

  1. Deklaration des Delegates: Wir definieren die Signatur der Methode, auf die der Delegate zeigen kann.

    public delegate int MyDelegate(int x, int y);
    
  2. Definition der Methoden: Wir erstellen Methoden mit der Signatur, die dem Delegate entspricht.

    public class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    
        public int Subtract(int a, int b)
        {
            return a - b;
        }
    }
    
  3. Verwendung des Delegates: Wir erstellen eine Instanz des Delegates und weisen ihm eine Methode zu. Dann rufen wir die Methode über den Delegate auf.

    public class Program
    {
        public static void Main(string[] args)
        {
            Calculator calc = new Calculator();
    
            // Erstellen einer Delegate-Instanz und Zuweisung der Add-Methode
            MyDelegate del = new MyDelegate(calc.Add);
    
            // Aufruf der Add-Methode über den Delegate
            int result1 = del(10, 5); // result1 = 15
            Console.WriteLine($"Ergebnis der Addition: {result1}");
    
            // Zuweisen des Delegates an die Subtract-Methode
            del = calc.Subtract;
    
            // Aufruf der Subtract-Methode über den Delegate
            int result2 = del(10, 5); // result2 = 5
            Console.WriteLine($"Ergebnis der Subtraktion: {result2}");
        }
    }
    

In diesem Beispiel kann MyDelegate auf jede Methode zeigen, die zwei ganze Zahlen-Argumente (int x, int y) akzeptiert und eine ganze Zahl (int) zurückgibt. Wir erstellen zwei Delegate-Instanzen (del), weisen ihnen die Methoden Add und Subtract zu, und verwenden dann den Delegate, um diese Methoden aufzurufen.