Wenn ich Visual Studio 2008 habe und ich eine .NET 2.0-Anwendung als Ziel habe, kann ich dann Lambda Expressions verwenden? Mein Verständnis von Lambda Expressions ist, dass es ein Feature ist, das in den Compiler integriert ist, nicht das Framework, also wäre meine Schlussfolgerung, dass ich Lambda in .NET 2.0 verwenden könnte. Kann mir bitte jemand sagen, ob das so ist?VB.NET Lambda Expressions
Antwort
Ja, das wird vollständig unterstützt. Solange Sie keinen Ausdrucksbaum erstellen oder anderweitig auf System.Core, System.Xml.Linq usw. verweisen, ist es absolut legal, Lambda-Ausdrücke in einer abwärts gerichteten 2.0-Anwendung zu verwenden. Dies gilt für alle anderen Compilerfunktionen, die in VS2008 (VB9) eingeführt wurden.
EDIT
Mehr Antworten geben fälschlicherweise an, dass Lambda-Ausdrücke sind ein Merkmal der 3.5 oder 3.0-Funktion. Lambda-Ausdrücke sind eine Compiler-Funktion und keine Framework-Komponente. Sie benötigen keine Framework-Unterstützung, um funktionieren zu können, und es ist vollkommen legal, sie in einer Anwendung zu verwenden, die auf 2.0 beschränkt ist.
Der einzige Ort, an dem Sie in Schwierigkeiten geraten würden, wäre, wenn Sie ein Lambda als Ausdrucksbaum verwendet hätten. Expression Trees sind sowohl ein Compiler- als auch ein Framework-Feature und benötigen 3.5, um korrekt zu funktionieren. Aber Sie müssen hart arbeiten, um dies zu ermöglichen, während wir aktiv versuchen, dies zu verhindern.
Es funktioniert nicht. Bei Verwendung von Linq muss System.Linq Teil der Framework-Assembly sein, die in .NET 2.0 nicht enthalten ist.
Ja, Sie haben Recht. Sie können Lambda-Ausdrücke anstelle von anonymen Methoden verwenden. Der Compiler wird den Rest sortieren. Versuchen Sie dies:
int sum = 0;
Array.ForEach(new[] {1, 2, 3, 4}, x => sum += x);
Was Sie nicht tun können, ist eine der neuen Funktionen von .Net 3.5 (dh. Linq) zu verwenden. Dazu müssen Referenzen zu System.Linq, System.Core usw. hinzugefügt werden, die in .Net 2.0 nicht vorhanden sind.
- 1. Lambda Expressions
- 2. Code Coverage auf Lambda Expressions
- 3. Wie nutzen Sie C# Lambda Expressions?
- 4. In C# sind Lambda Expressions Objekte?
- 5. Stumped auf Entity Framework & Lambda Expressions
- 6. Java Lambda Expressions und Event-Info
- 7. PrincipalSearchResult <Principal>, Lambda Expressions
- 8. Wie werden VB.net XML Embedded Expressions implementiert?
- 9. Lambda-Ausdrücke in vb.net
- 10. Lambda ist in VB.net?
- 11. konvertieren C# Lambda VB.NET
- 12. Lambda Expressions und die || Operator in Entity Framework
- 13. Sollte ich immer Lambda Expressions für Ausnahmetests verwenden?
- 14. Implementierungsunterschiede/Optimierungen zwischen Lambda Expressions und anonymen Klassen
- 15. C# Expressions - FatalExecutionEngineError
- 16. Wie durch mehrere Spalten mit VB.Net Lambda-Ausdrücke zu bestellen
- 17. Lambda-Ausdruck von C# zu VB.Net
- 18. Wie schreibe ich einen VB.Net Lambda-Ausdruck
- 19. Parsing Conditional Expressions zu String
- 20. Transformieren von Funktionskörpern in Boost Phoenix Expressions
- 21. Parse XPath Expressions
- 22. Carets in Regular Expressions
- 23. Kombinieren Einsum Expressions
- 24. Regular Expressions in R
- 25. Auswertung Javascript Expressions
- 26. Expressions Web 2 - Umschreibcode
- 27. Ist es notwendig, den Scanner innerhalb der Block Lambda Expressions zu schließen?
- 28. Aufrufen einer generischen Methode mit Lambda Expressions (und einem Typ, der nur zur Laufzeit bekannt ist)
- 29. Unterstützt Microsoft Expressions Web Webanwendungsprojekte?
- 30. DataTable Expressions und Datagrid Sichtbarkeit
Ja, Dandan hat Recht. Nein, Sie können nicht auf die 3.5 Assemblies verweisen, indem Sie sie einfach in den Papierkorb legen. Ich habe gefragt ... Das Problem ist, dass es auch im System-Namensraum viele Änderungen gegeben hat. – andy
Dies ist nicht der Fall. LINQ wird mit Sicherheit mit einem 3.5-Compiler (Vb9) unterstützt, um auf eine 2.0-Anwendung zu zielen, vorausgesetzt, Sie verfügen über ausreichend verfügbare LINQ-Methoden wie Select und Where. Das gilt auch für C# – JaredPar