mehr Details: das ist ein Teil der Login-Funktion und ich möchte nur, dass meine Lambda-Funktion Login-Name Benutzer mit einem out-Parameter ändert und sagte mir, dass Benutzer mit seiner Bool-Return-Login.
Ich verstehe wirklich, dass ich das Tuple zurückgeben kann und dann meinen String-Wert bekomme, aber ich möchte genau Parameter für etwas persönliche Klarheit herausholen. Ich gebe besser nur die Zeichenfolge mit Null zurück, wenn der Benutzer nicht angemeldet ist. Ich möchte nur wissen, ob ich Parameter innerhalb von Lambda-Funktionen verwenden kann.
Und ich verstehe wirklich, dass der Code mit den Ausdrücken auf den Anweisungsplätzen nicht so sauber ist. Aber keiner sagte mir, ob das wirklich schlecht für den Compiler ist.
Lambda Ausdrücke funktionieren nicht, aber für Delegaten sollten Sie einen Anweisungskörper verwenden:
%Vor%Für Delegierte ... Sie müssen Ihre eigenen definieren:
%Vor%Sie können keine Parameter mit einem Lambda-Ausdruck verwenden. Siehe stackoverflow
Obwohl Sie das out-Schlüsselwort nicht verwenden können, habe ich eine Lösung gefunden, mit der Sie im Grunde C ++ - artige Speicherzeiger in .NET erreichen können. Ich habe diese Klasse gefunden , und zwar genau aus dem Grund, aus dem Sie das geöffnet haben SO Frage nicht in der Lage sein, einen out-Parameter zu verwenden, wo ich es wollte.
%Vor%Anwendungsbeispiel
%Vor% Ich benutze dies in einem Batch-Programm, das Batch-Operationen erlaubt, die Session-Flushing mit RavenDB zu kontrollieren, wenn ich feingranulare Session-Kontrolle brauche, während ich auch einen Umgebungs-Session-Kontext belasse. Wort der Warnung Ich habe keine Ahnung, welche Auswirkungen diese Art von Code in einer lang laufenden Produktions-App haben würde, da ich nicht sicher bin, ob dies die GC
verwirren und dazu führen würde, dass der Speicher niemals zurückgewonnen wird.