Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind Lambda-Ausdrücke in C#?

Was sind Lambda-Ausdrücke in C#?

王林
王林nach vorne
2023-09-08 14:25:15650Durchsuche

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();

Funccube = x => x * x * x;

Func testForEquality = (x, y) => x == y;

Func isTooLong = (int x, string s) => s.Length > x;

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen