Heim > Backend-Entwicklung > C++ > Hauptteil

Lambda-Notation vs. Delegate-Schlüsselwort: Können sie austauschbar verwendet werden?

Mary-Kate Olsen
Freigeben: 2024-10-31 01:51:29
Original
758 Leute haben es durchsucht

  Lambda Notation vs. Delegate Keyword: Can They Be Used Interchangeably?

Delegate-Schlüsselwort vs. Lambda-Notation: Sind sie austauschbar?

Moderne Programmiersprachen bieten oft mehrere Möglichkeiten, die gleiche Berechnung auszudrücken. In C# sind die Lambda-Notation und das Schlüsselwort „delegate“ zwei beliebte Optionen. In dieser Diskussion werden ihre Äquivalenz und Nuancen untersucht.

Lambda-Notation:

<code class="csharp">() => { x = 0; }</code>
Nach dem Login kopieren

delegate keyword:

<code class="csharp">delegate { x = 0; }</code>
Nach dem Login kopieren

Sind sie wirklich gleichwertig?

In Bezug auf das resultierende Verhalten ist die Antwort ein klares Nein. Beide Notationen führen zu einem anonymen Delegaten, der einer Variablen x 0 zuweist.

Kleine Unterschiede (irrelevant für Ihre Frage):

Es ist jedoch wichtig zu beachten, dass if Wenn Sie einem Delegatentyp (z. B. Func oder Action) ein Lambda zuweisen, erhalten Sie einen anonymen Delegaten. Wenn Sie ihn dagegen einem Ausdruckstyp zuweisen, erhalten Sie stattdessen eine Ausdrucksbaumstruktur, die zu einem anonymen Delegaten kompiliert werden kann. Ausdrucksbäume werden nicht direkt ausgeführt wie anonyme Delegaten.

Zusätzliche Ressourcen zu Ausdrücken:

  • System.Linq.Expression.Expression(TDelegate)
  • Link zu In-Memory LINQ mit Delegaten
  • ScottGu erklärt den Unterschied zwischen In-Memory LINQ und Entity Framework

Das obige ist der detaillierte Inhalt vonLambda-Notation vs. Delegate-Schlüsselwort: Können sie austauschbar verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage