Zum Hauptinhalt springen

Lambda-Ausdrücke

Lambda - Ausdrücke

Lambda-Ausdrücke sind eine verkürzte Schreibweise, um anonyme Methoden in C# zu erstellen. Sie ermöglichen es, Funktionen als Parameter an Methoden zu übergeben oder als Rückgabewerte von Methoden zu verwenden. Mit Lambda-Ausdrücken können Sie auch schnell und einfach Delegaten erstellen, die als Event-Handler in Event-basierten Anwendungen verwendet werden können. Lambda-Ausdrücke bieten auch eine kompakte Syntax, die es einfacher macht, Funktionen zu schreiben und den Code leichter lesbar zu machen.

internal class LambdaExample
{
private delegate double CalculatHandler(double number1, double number2);
public static void Run()
{
CalculatHandler calculator;

while (true)
{
Console.WriteLine("1 - Addieren, 2 - Subtraieren, 3 - Mulipilzieren, 4 - Dvidieren:");
int choice = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Nummber 1: ");
double number1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Number 2: ");
double number2 = Convert.ToDouble(Console.ReadLine());

switch (choice)
{
default:
calculator = (double number1, double number2) =>
{
return (number1 + number2);
};
break;
case 2:
// verkürzte Schreibweise, return darf weggelassen werden
calculator = (double number1, double number2) => number1 - number2;
break;
case 3:
// verkürzte Schreibweise möglich, wenn die Datentypen bekannt sind.
calculator = (number1, number2) => number1 * number2;
break;
case 4:
calculator = (number1, number2) => number1 / number2;
break;
}
double result = calculator(number1, number2);
Console.WriteLine($"Das Ergebnis ist {result}\n\n");
}
}
}

Lambda Verkürzungen

Lambda-Ausdrücke sind eine verkürzte Schreibweise, um anonyme Funktionen in C# zu definieren.

Hier sind Möglichkeiten der Verkürzung:

  1. Mit nur einem Parameter:
x => x + 1
  1. Mit mehreren Parametern:
(x, y) => x * y
  1. Ohne Parameter:
() => Console.WriteLine("Hello World!")
  1. Mit explizitem Rückgabewert:
(x, y) =>
{
int result = x + y;
return result;
}
  1. Mit implizitem Rückgabewert:
(x, y) => x + y

Kommentare