Back to blog
Jan 2022·2 min read

C# Delegates

#c

Ein Delegate ist eine Art Zeiger auf eine Methode oder eine Gruppe von Methoden, die aufgerufen werden können, ohne dass du Details über die zugrunde liegenden Implementierungen kennen musst. Delegates sind besonders nützlich, wenn du Callback-Methoden implementieren oder Ereignisse in deiner Anwendung behandeln musst.

Delegates in C# wurden erstmals in .NET Framework 1.0 eingeführt und haben sich seitdem zu einem wichtigen Konzept in der Programmierung von .NET-Anwendungen entwickelt. Sie sind Teil des Konzepts von "Delegated Programming", das es ermöglicht, Methoden oder Funktionen als Argumente an andere Methoden oder Funktionen zu übergeben. Dieses Konzept ermöglicht es dir, flexiblere und dynamischere Anwendungen zu erstellen.

Die Verwendung von Delegates in C# ist relativ einfach. Zunächst musst du einen Delegate-Typ definieren, der die Signatur der Methode beschreibt, auf die der Delegate verweist. Zum Beispiel könnte ein Delegate-Typ für eine Methode definiert werden, die zwei Ganzzahlen als Argumente akzeptiert und eine Ganzzahl zurückgibt:

delegate int MathOperation(int x, int y);

Sobald du einen Delegate-Typ definiert hast, kannst du eine Instanz des Delegates erstellen und ihm eine Methode oder eine Gruppe von Methoden zuweisen, auf die er verweisen soll. In C# kannst du Delegates auch verwenden, um anonyme Methoden zu definieren, was es einfach macht, Callback-Methoden zu implementieren.

Ein Beispiel für die Verwendung von Delegates in C# könnte so aussehen:

public class Calculator
{
  public int Add(int x, int y)
  {
    return x + y;
  }

  public int Subtract(int x, int y)
  {
    return x - y;
  }
}

public class Program
{
  delegate int MathOperation(int x, int y);

  static void Main(string[] args)
  {
    Calculator calc = new Calculator();

    MathOperation add = new MathOperation(calc.Add);
    MathOperation subtract = new MathOperation(calc.Subtract);

    int result1 = add(10, 5);
    int result2 = subtract(10, 5);

    Console.WriteLine("Addition: {0}", result1);
    Console.WriteLine("Subtraction: {0}", result2);

    Console.ReadLine();
  }
}

In diesem Beispiel wird ein Delegate-Typ namens MathOperation definiert, der die Signatur der Methoden Add und Subtract der Klasse Calculator widerspiegelt. Dann werden Instanzen des Delegates add und subtract erstellt, die auf die Methoden Add und Subtract der Klasse Calculator verweisen. Schließlich werden die Delegates aufgerufen, um die beiden Operationen auszuführen, und die Ergebnisse werden auf der Konsole ausgegeben.

Die Verwendung von Delegates in C# ist ein leistungsstarkes Konzept, das es dir ermöglicht, flexiblere und dynamischere Anwendungen zu erstellen. Wenn du Callback-Methoden implementieren oder Ereignisse in deiner Anwendung behandeln musst, solltest du dich mit Delegates vertraut machen und ihre Verwendung in Betracht ziehen.

NewerGoPro-Fotos automatisch umbenennen und kopierenOlderAuto-Backup to Amazon S3