En C#, ¿hay objetos de expresiones lambda? Si es así, ¿qué tipo de objeto son?En C#, ¿hay objetos Lambda Expressions?
Respuesta
Las expresiones Lambda solo existen en el código fuente. Ellos no tienen un tipo ellos mismos, por lo que el compilador siempre insiste en que se conviertan a un tipo específico.
Es por eso que este código no se compila:
// No idea what type to convert to!
object x = y => y.Length;
Pero esto hace: expresiones
Func<string, int> x = y => y.Length;
Lambda siempre se convierten en ya sea un tipo de delegado o un tipo de árbol de expresión . Del mismo modo, los métodos anónimos siempre se convierten en un tipo de delegado.
Las operaciones de Lambda en Linq crean lo que se llama árboles de expresión. Puedes leer un poco al respecto here.
Bueno, podrían. O podrían construir delegados. Depende del proveedor. –
Sí, las expresiones lambda se convierten a delegate
o expression tree, ambos objetos.
Es una función anónima que debe ajustarse a algún tipo de delegado. msdn Así que, de hecho, son ejemplos de algún tipo de delegado.
A menos que se conviertan en un árbol de expresiones ... –
- 1. Lambda Expressions
- 2. C# Lambda expressions y NHibernate
- 3. Lambda Expressions and Memory Management
- 4. Cobertura de código en Lambda Expressions
- 5. Usando árboles Lambda Expressions con IEnumerable
- 6. ¿De qué maneras haces uso de C# Lambda Expressions?
- 7. MVC HTML Helpers y Lambda Expressions
- 8. ¿Hay un match_partial en C++ 11 Regular Expressions?
- 9. Uso de GroupBy, Count y Sum en LINQ Lambda Expressions
- 10. Expresión lambda en C#
- 11. C++ 0x sobrecarga Lambda
- 12. ¿Cómo pluralizar "Hay/hay N objetos/objetos"?
- 13. Cierres y Lambda en C#
- 14. ¿Hay alguna manera de especificar una expresión lambda C# "vacía"?
- 15. La mejor manera de pasar una lista de nombres de propiedades como Lambda Expressions
- 16. ¿Hay una función lambda en Scala?
- 17. C++ 11 lambda en decltype
- 18. Parámetros variables en C# Lambda
- 19. lambda devuelve lambda en python
- 20. C++ 0x lambda capturas
- 21. C# comportamiento extraño lambda
- 22. C++ lambda operator ==
- 23. Pasando C++ Lambda Functions
- 24. Expresiones Lambda de VB.NET
- 25. C# Lambda (=>)
- 26. ¿Utiliza C expresiones lambda?
- 27. Análisis de S-Expressions en Python
- 28. C++ 0x: sobrecarga en lambda arity
- 29. C#: ¿Sin conversión implícita entre 'expresión lambda' y 'expresión lambda'?
- 30. expresiones lambda en C# vs. vb.net
+1 Buena respuesta. Me gusta que explique cómo las expresiones lambda son en realidad solo azúcar de sintaxis para un delegado o un árbol de expresiones. –