Konvertieren von C# Func
In C# bieten Lambda-Ausdrücke eine praktische Möglichkeit, einfache Funktionen darzustellen. Während es unkompliziert ist, ein Lambda in einen Ausdruck umzuwandeln
Die Herausforderung
Eine solche direkte Konvertierung ist jedoch aufgrund eines Fehlers bei der Kompilierung nicht möglich, wie im folgenden Code dargestellt :
public void ContainTheDanger(Func<T> dangerousCall) { try { dangerousCall(); } catch (Exception e) { // This next line does not work... Expression<Func<T>> DangerousExpression = dangerousCall; var nameOfDanger = ((MemberExpression)dangerousCall.Body).Member.Name; throw new DangerContainer("Danger manifested while " + nameOfDanger, e); } }
Der Fehler rührt daher, dass Func
Einschränkungen
Leider gibt es keinen einfachen Weg, die gewünschte Konvertierung zu erreichen. Der Versuch, den ursprünglichen Ausdruck von einem Func
Alternative Ansätze
Als Alternative kann man Folgendes in Betracht ziehen:
Diese Ansätze sind jedoch typischerweise komplex und fehleranfällige Techniken.
Fazit
Konvertieren a Func
Das obige ist der detaillierte Inhalt vonWie kann ich eine C#-Funktion in einen Ausdruck konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!