Direktes Fenster ist fantastisch nützliche Werkzeuge, wenn der aktuelle Zustand während des Debugging-Prozesses untersucht wird. Ich habe gelernt, dass man mit dem Fragezeichen etwas mehr drin haben kann, wie in diesem Beitrag gezeigt .
Ich weiß jedoch immer noch nicht, wie ich dort LINQ-Abfragen ausführen soll ( einschließlich Lambda-Ausdrücke). Ich habe auch keine foreach Anweisung ausgeführt.
Beim Ausführen der folgenden Anweisungen:
%Vor%Ich bekomme diese Fehler:
Ausdruck darf keine Lambda-Ausdrücke enthalten Ungültiger Ausdrucksterm 'foreach'
(Wie) kann ich diese im Direktfenster ausführen?
Es gibt auch ein Tool in VS Gallery , aber es wird gesagt, dass es nur funktioniert VS05 und VS08, die die meisten Programmierer vor langer Zeit zurückgelassen haben. Ich suche nach etwas, das auf VS13 und / oder VS15 anwendbar ist.
Gemäß den neuen Funktionen von Visual Studio 2015 ist die Unterstützung für das Debugging von Lambda jetzt im Watch / Instant-Fenster verfügbar:
Lambda-Ausdrücke in Debugger-Windows
Sie können nun Lambda-Ausdrücke in Watch, Immediate und andere Debugger-Fenster in C # und Visual Basic.
Quelle:
In VS2015 können Sie Lambda- Ausdrücke im Überwachungsfenster und im unmittelbaren Fenster verwenden.
Fügen Sie einfach die Uhr hinzu oder tippen Sie im unmittelbaren Fenster ein (während Debugging und things
im Gültigkeitsbereich sind):
und Sie erhalten eine Ergebnisliste.
Hier ist ein Blog über das
>Leider scheint es unmöglich zu sein, Lambda's entweder aus dem direkten Fenster oder dem Beobachtungsfenster zu verwenden. Der technische Grund dafür ist vermutlich, dass Linq-Abfragen normalerweise in normale Ausdrücke konvertiert werden und dass dies irgendwie einen vollständigen Kompilierungsschritt erfordert, anstelle der Tricks, die von diesen beiden Fenstern verwendet werden.
Falls Sie nicht wussten, dass der thing=>thing.Id
-Teil ein Lambda-Ausdruck ist.
Tags und Links c# linq lambda visual-studio immediate-window