¿Es posible el uso de LINQ en aplicaciones Win32 DELPHILINQ en Win32 DELPHI
Respuesta
Delphi 2009 tiene genéricos, ayudantes de clase y anónima de apoyo método, pero no lambda, métodos de extensión o tipo de inferencia. Las expresiones de Lambda probablemente vendrán en una versión futura de Delphi, pero aún no están en el mapa oficial (una nueva debería llegar pronto con suerte). Además, Delphi para Win32 no tiene acceso a todas las bibliotecas LINQ.
Así que la respuesta corta es NO, no se puede hacer LINQ en Win32 Delphi. Sin embargo, puede hacer algunas cosas similares e incluso puede acceder técnicamente a LINQ a través de COM (como puede hacer con cualquier clase de .NET), pero de alguna manera vencería el punto sin la excelente sintaxis de LINQ.
LINQ es realmente una tecnología .NET. Si bien es probable que Delphi desarrolle las funciones de lenguaje que hacen que LINQ sea posible, las bibliotecas .NET subyacentes son solo para el desarrollo de .NET.
Sugeriría usar RemObject Data Abstract o similar.
Sí y No. LINQ realmente pueden ser considerados como dos elementos diferentes.
La primera es la sintaxis de consulta similar a SQL. Es lo que le permite escribir lo siguiente en C#.
var query = from it in "foobar" select Char.ToUpper(it);
Para que Delphi use esta versión de LINQ, necesitaría agregar soporte de sintaxis explícito. AFAIK esto no existe.
Sin embargo, todas las consultas de LINQ se traducen en un conjunto de expresiones de consulta. Estos típicamente implican un uso intensivo de expresiones lambda y cierres. El código anterior es equivalente a la siguiente versión de sintaxis no SQL.
var query = "foobar".Select(x => Char.ToUpper(x));
no sé el nivel de lambda o delegar el apoyo en Delphi pero debe ser posible acceder a LINQ en este método desde Delphi.
- tiene un pequeño error, debe reemplazar "it" por "x". Delphi Win32 carece de casi todas las características que hacen que funcione el segundo ejemplo. No hay VAR. string y char no son objetos, y usted no tiene la breve sintaxis de las expresiones lamda. Entonces, si puedes hacerlo, sería mucho más feo. –
@mliesen, gracias corrigió el error tipográfico. – JaredPar
No sé en qué versión de Delphi apareció, pero en XE tenemos 'funciones de objeto' que se pueden hacer como cierres o casi expresiones lambda iguales.
Por lo tanto, a partir de hoy (26/06/2011) es cerca de posible tener expresiones tipo LINQ en Delphi (la 2ª forma).
¿Qué quiere decir con "funciones de objeto"? –
- 1. Clases estáticas en Delphi (Win32)
- 2. Registros de referencias mutuas en Delphi (Win32)
- 3. Comenzando con SOAP para Delphi en Win32
- 4. Interfaces de biblioteca virtual para Delphi/Win32?
- 5. ¿Puedo usar una DLL .NET en "Delphi 2007 for Win32"?
- 6. Delphi Win32: aceleración de controles creados dinámicamente (propiedad primaria)
- 7. ¿Es posible usar WPF y Delphi 2007/09 win32?
- 8. ¿Conoces un framework MVC para aplicaciones Win32 Delphi?
- 9. Array Property, TList, TStringList, o TCollection, etc. (Delphi Win32)
- 10. Delphi VCL para Win32 - múltiples controladores de eventos
- 11. Poner una imagen dentro de un combobox (borde derecho) en Delphi/Win32
- 12. Imagen animada en Win32
- 13. Win32/Induc.A, virus "Delphi", infecta SysConst.pas, ¿alguien tiene una muestra de código para buscar?
- 14. Delphi versus C++ Builder - Cuál es la mejor opción para un programador de Java Hacer Win32
- 15. Implementación de mapa de proceso dinámico para la aplicación win32 utilizando Delphi
- 16. Cómo compilar un programa Win32 desde la línea de comandos con Delphi
- 17. ¿Incoherencia de SOAP? Delphi 2010 (Win32) Servidor y cliente .NET intercambiando 'out-parameter' y 'result'
- 18. Temporizador en un servicio win32
- 19. Pregunta sobre IsDialogMessage() en WIN32
- 20. ¿Cómo incrustar WebKit en mi aplicación C/C++/Win32?
- 21. Rendering SVG con Delphi
- 22. diferencia entre #if defined (WIN32) y #ifdef (WIN32)
- 23. "Fundamentos de Delphi" en Delphi 2009
- 24. Creación de aplicaciones Delphi multiplataforma
- 25. ¿No hay más unidad xercesxmldom en Delphi XE?
- 26. ¿Dibujando en una consola Win32 en C++?
- 27. Función Win32 a OpenFileDialog?
- 28. ¿Cómo puedo grabar CD/DVD de delphi2007 win32
- 29. Ruby win32 api interface
- 30. Gui's con Win32 API
Umm ... ¿no son los métodos de extensión y los ayudantes de clase dos nombres para exactamente lo mismo? La única diferencia es que uno de ellos se usa en Delphi y el otro se usa en C#, o hay alguna parte crítica de la funcionalidad que estoy pasando por alto? –
Los Ayudantes de clase solo se aplican a una clase. Los métodos de extensión son un poco más amplios. Son muy similares, y probablemente puedas hacerlo con Class Helpers, pero requeriría más código. –