LINQ Erweiterung SelectMany in 3.5 vs 4.0?

8

Als ich Darins Vorschlag hier sah ..

%Vor%

( process.getprocessesbyname () )

.. Ich war ein bisschen fasziniert und ich versuchte es in VS2008 mit .NET 3.5 - und es kompilierte nicht, wenn ich es nicht änderte ..

%Vor%

Nachdem ich einige Antworten von Darins gelesen hatte, bevor ich vermutete, dass ich das war, und als ich später - wie erwartet - einen VS2010 mit .NET 4.0 in die Hände bekam, funktionierte der ursprüngliche Vorschlag wunderbar.

Meine Frage ist: Was ist von 3.5 bis 4.0 passiert, was diese (neue Syntax) ermöglicht? Sind es die erweiterten Methoden (hmm) oder neue Regeln für Lambda-Syntax oder?

    
Moberg 17.06.2010, 17:14
quelle

1 Antwort

7

Es scheint, dass die Delegiertenauswahl in der neuen Version von C # viel intelligenter ist (C # 4.0 vs. C # 3.0 ... nicht die Version von .NET). Diese Idee war in VS2008 verfügbar, hatte aber Probleme beim Auflösen Version der Methode, die bei mehreren Überladungen verwendet werden soll. Die Methode wird bei der Kompilierung ausgewählt, daher muss ich annehmen, dass dies mehr mit dem aktualisierten Compiler als mit der .NET-Version zu tun hat. Sie werden wahrscheinlich feststellen, dass Sie die neue Überladungsfunktion mit Lösungen verwenden können, die für .NET 2.0 in VS2010 kompiliert wurden.

Dies funktioniert beispielsweise in VS2008

%Vor%     
Matthew Whited 17.06.2010, 17:28
quelle

Tags und Links