¿Hay alguna manera de obtener el depurador de Visual Studio para mostrar el contenido de una expresión F # seq
?Mostrar una secuencia en la ventana del reloj
Visual Studio conoce los objetos IEnumerable<T>
y le da una vista de resultados dentro de la ventana del reloj. Si miras uno de estos en la ventana del reloj, obtienes un desorden de campos privados.
Algunas alternativas posibles:
- fsi.exe hace un buen trabajo de secuencias de impresión, pero no interactúa con el depurador
- Encontrar una manera de llamar
Seq.toArray
desde el interior del depurador. No puedo encontrar la sintaxis correcta para invocar esto desde, digamos, la ventana Inmediato. - Escriba un vizualizador. No sé si es posible adjuntar vizualizadores a los tipos de Microsoft.
- ¿Algo más ...?
Editar: La posterior investigación revela que los objetos seq
F # 's implementan IEnumerable<T>
bien - que aparecen en la ventana de inspección como tal - pero por alguna razón no aparece la vista de resultados.
Sin embargo, los objetos F #
(F # seq
no parecen ser simples IEnumerables; en cambio, parecen ser cierres provenientes de las funciones dentro del módulo
Seq
.
seq
objetos parecen ser instancias creadas utilizando { new IEnumerable with ... }
.)
lástima LINQ no es compatible con ventanas del depurador: http://blogs.msdn.com/b/jaredpar/archive/2009/08/26/why-no-linq-in-debugger-windows. aspx –
ver mi respuesta sobre cómo hacer que aparezca el nodo Resultados – JaredPar