Si tengo Visual Studio 2008 y apunto a una aplicación .NET 2.0, ¿puedo seguir usando Lambda Expressions? Mi comprensión de Lambda Expressions es que es una característica integrada en el compilador, no en el framework, por lo que mi conclusión sería que podría usar Lambda en la aplicación .NET 2.0. ¿Alguien puede decirme si esto es así?Expresiones Lambda de VB.NET
Respuesta
Sí, esto es completamente compatible. Siempre que no construya un árbol de expresiones o haga referencia a System.Core, System.Xml.Linq, etc ... es perfectamente legal usar expresiones Lambda en una aplicación 2.0 de destino. Esto es cierto para cualquier otra característica de compilación introducida en VS2008 (VB9).
EDITAR
Varias respuestas incorrectamente que las expresiones lambda son una característica de la función de 3.5 o 3.0. Las expresiones Lambda son una característica de compilación, no de Framework. No requieren soporte de framework para funcionar y es perfectamente legal usarlos en una aplicación dirigida a 2.0.
El único lugar donde te meterías en problemas es si usaste un lambda como árbol de expresiones. Expression Trees es una característica de compilación y marco y requiere 3.5 para funcionar correctamente. Pero tienes que trabajar duro para habilitar esto mientras intentamos activamente evitar que esto suceda.
No funciona. El uso de Linq requiere que System.Linq forme parte del ensamblaje de framework, que .NET 2.0 no tiene.
Sí, usted está en lo correcto. Puede usar expresiones lambda en lugar de métodos anónimos. El compilador clasificará el resto. Pruebe esto:
int sum = 0;
Array.ForEach(new[] {1, 2, 3, 4}, x => sum += x);
Lo que no puede hacer es usar cualquiera de las nuevas funciones de .Net 3.5 (es decir, Linq). Hacerlo requiere agregar referencias a System.Linq, System.Core, etc., que no están presentes en .Net 2.0.
- 1. expresiones lambda en vb.net
- 2. expresiones lambda en C# vs. vb.net
- 3. Lambda Expresiones
- 4. lambda Expresiones
- 5. Ejemplos de expresión lambda de VB.NET
- 6. Compilación de expresiones Lambda
- 7. registro de expresiones lambda
- 8. ¿Por qué las expresiones lambda se llaman expresiones lambda?
- 9. ¿Puedes explicar expresiones lambda?
- 10. expresiones lambda recursivas posibles?
- 11. Enhebrado y expresiones lambda
- 12. Combinar Expresiones Lambda
- 13. ¿Utiliza C expresiones lambda?
- 14. GroupBy en expresiones lambda
- 15. Cuándo no utilizar expresiones lambda
- 16. ordenación python sin expresiones lambda
- 17. C# expresiones lambda y IComparer
- 18. Expresiones Lambda y cómo combinarlas?
- 19. plantillas variadic para Expresiones Lambda
- 20. `action delegado y lambda expresiones
- 21. Expresiones de Lambda de .NET en Java
- 22. Comparar PropertyInfo de Type.GetProperties() y expresiones lambda
- 23. múltiples en las cláusulas de Expresiones Lambda
- 24. C# Expresiones lambda como argumentos de funciones
- 25. Grupo de expresiones Lambda en C#
- 26. Lambda para expresiones de tipo en Haskell?
- 27. Coincidencia de patrón para expresiones lambda
- 28. Transferencia elegante de expresiones lambda en C++
- 29. C# Expresiones lambda: ¿Por qué debería usarlas?
- 30. C# expresiones lambda y evaluación diferida
sí, Dandan tiene razón. Además, no, no puede hacer referencia a los ensamblajes 3.5 simplemente colocándolos en su contenedor. He preguntado ... el problema es que también ha habido muchos cambios en el espacio de nombres del sistema. – andy
Este no es el caso. LINQ es ciertamente compatible con el uso de un compilador 3.5 (Vb9) para apuntar a una aplicación 2.0 siempre que tenga suficientes métodos LINQ disponibles, como Seleccionar y Dónde. Es cierto para C# también – JaredPar