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>
delegate keyword:
<code class="csharp">delegate { x = 0; }</code>
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:
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!