Heim > Artikel > Backend-Entwicklung > Was sind Lambda-Ausdrücke in C#?
Lambda-Ausdrücke sind eine bessere Möglichkeit, anonyme Methoden darzustellen. Sowohl anonyme Methoden als auch Lambda-Ausdrücke ermöglichen Ihnen die Inline-Definition von Methodenimplementierungen. Bei anonymen Methoden müssen Sie jedoch explizit die Parametertypen und den Rückgabetyp der Methode definieren.
Ein Ausdruck mit einem Ausdruck als Lambda-Körper: (Eingabeparameter) => Ausdruck
Ein Anweisungs-Lambda mit einem Anweisungsblock als Hauptteil:
(Eingabeparameter) => {
Jeder Lambda-Ausdruck kann in einen Delegatentyp konvertiert werden. Der Delegattyp, in den ein Lambda-Ausdruck konvertiert werden kann, wird durch die Typen seiner Parameter und des Rückgabewerts definiert. Wenn der Lambda-Ausdruck keinen Wert zurückgibt, kann er in einen der Action-Delegattypen konvertiert werden; andernfalls kann er in einen der Func-Delegattypen konvertiert werden.
static void Main(string[] args){ Func<int, int> square = x => x * x; Console.WriteLine(square(5)); Console.ReadLine(); }
=> Ein Lambda-Ausdruck mit einem Ausdruck auf der rechten Seite des Operators wird als Ausdrucks-Lambda bezeichnet. Ausdruck Lambda gibt das Ergebnis eines Ausdrucks zurück und nimmt die folgende Grundform an:
Action line = () => Console.WriteLine();
Func
Func
Func
In C# 7.0 bietet die C#-Sprache integrierte Unterstützung für Tupel. Sie können ein Tupel als Argument für einen Lambda-Ausdruck bereitstellen, und Ihr Lambda-Ausdruck kann auch ein Tupel zurückgeben.
In Lambda-Ausdrücken eingeführte Variablen sind in der einschließenden Methode nicht sichtbar.
Lambda-Ausdrücke können keine In-, Ref- oder Out-Parameter direkt aus der einschließenden Methode erfassen.
Eine Return-Anweisung in einem Lambda-Ausdruck führt nicht dazu, dass die einschließende Methode zurückkehrt.
Wenn das Ziel der Sprunganweisung außerhalb des Lambda-Ausdrucksblocks liegt, kann der Lambda-Ausdruck keine Goto-, Break- oder Continue-Anweisung enthalten. Es ist auch ein Fehler, eine Sprunganweisung außerhalb eines Lambda-Ausdrucksblocks zu verwenden, wenn sich das Ziel innerhalb des Lambda-Ausdrucksblocks befindet.
Das obige ist der detaillierte Inhalt vonWas sind Lambda-Ausdrücke in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!