📚
Lerndokumentationen
.NET
.NET
  • Willkommen
  • C#
    • Variablen
      • Strings
      • Integers
      • Floats und Doubles
      • Booleans
      • Casting und Parsing
    • Kontrollstrukturen
      • if-Statements
      • Ternary-Operator
      • Switch-Statements und -Expressions
    • Collections
      • Arrays
      • Lists
      • Dictionaries
    • Loops
      • while-Loops
      • for-Loops
      • foreach-Loops
      • continue und break
    • Methoden
      • Callbacks und Delegates
      • Extension Methods
      • Lazy
    • Objektorientierte Programmierung
      • Fields und Properties
      • Methoden
      • Statisch vs. Instanzen
      • Konstruktoren
      • Vererbung
      • Komposition
      • Generics
      • Tupel
    • Referenz- und Wertetypen
      • Enums
      • Structs
      • Records
    • Binary und Strings
      • Kodierung von Strings und Bytes
      • Streams
      • XML und JSON
  • Design Patterns
    • Creational Patterns
      • Singleton
    • Structural Patterns
      • Decorator Pattern
    • Behavioral Patterns
      • Memento
      • Strategy
Bereitgestellt von GitBook
Auf dieser Seite
  • Action und Func
  • Callbacks
  • Delegates
  1. C#
  2. Methoden

Callbacks und Delegates

Wir können Methoden an andere Methoden als Argument übergeben. Die Methode, die übergeben wurde nennt man Callback, da sie erst zu einem späteren Zeitpunkt ausgeführt wird. Wir können solche Methoden mit Delegates erstellen.

Action und Func

 greet = Greet;
action();

void Greet()
{
    Console.WriteLine("Hello");
}

Func<, > addition = Add;

int Add(int a, int b)
{
    return a + b;
}

Callbacks

Nun können wir unsere erstellten Actions bzw. Funktionen einer anderen Methode übergeben.

void CallMethodAfterUserPressesEnter(Action callback)
{
    Console.WriteLine("Press enter for a surprise!");
    Console.ReadLine();
    callback();
}

CallMethodAfterUserPressesEnter(greet);

void Calculate(Func<int, int, int> calculation)
{
    Console.WriteLine("Enter the first integer: ");
    int a = int.Parse(Console.ReadLine());
    
    Console.WriteLine("Enter the second integer: ");
    int b = int.Parse(Console.ReadLine());
    
    int result = calculation(a, b);
    Console.WriteLine($"The result is: {result}")
}

Calculate(addition);

Delegates

Mit Delegates haben wir eine deutlich besser DX, da Intellisense uns beim Übergeben der Argumente hilft.

delegate int Calculation(int firstNumber, int secondNumber);

Calcuclation subtraction = Subtract;

int Subtract(int a, int b)
{
    return a - b;
}

void Calculate(Calculation calculation)
{
    ...
    
    int result = calculation(a, b);
    Console.WriteLine($"The result is: {result}")
}
VorherigeMethodenNächsteExtension Methods

Zuletzt aktualisiert vor 1 Monat