2010-05-06 4 views
6

In Visual Studio 2010 manchmal, wenn ich den Wert einer Variablen beim Debuggen erhalten möchten, es sagt mir, dass es „in diesem Zusammenhang nicht existiert“, wenn es offensichtlich der Fall ist.Warum würde Visual Studio 2010 sagen, dass es beim Debuggen keine Variable anzeigen kann?

Ich habe festgestellt, dass, wenn ich Verwendung die Variable, wie in der Screenshot unten, dann es in der Lage ist, es zu zeigen.

Hat jemand das erlebt? Visual Studio 2008 hat dies nie getan.

Wie kann ich Visual Studio 2010 dazu bringen, beim Debuggen immer Variablenwerte anzuzeigen?

alt text http://www.deviantsart.com/upload/jcnr1s.png

+0

Dumme Frage. Die Hilfsmethode verwendet LINQ nicht, oder? –

+0

Welche Sprache/Umgebung (ASP.NET?) Debuggen Sie? Hast du den Prozess angehängt, nachdem er bereits ausgeführt wurde? (Das .NET-JIT wird möglicherweise anders kompiliert, wenn kein Debugger angeschlossen ist). –

+0

* fileNames * wird optimiert, weil Sie nichts damit machen. Wenn ich Variablen auf die gleiche Weise benutzt habe (dh sie ist nur für Debugging-Zwecke da), folge ich ihr mit einem * Console.Write (fileNames.Count) * (oder einem Debug.Write), um sicherzustellen, dass sie "benutzt" wird. . – slugster

Antwort

4

eine Vermutung Hazarding ..

Könnte es sein, dass Ihr Betrieb in Release-Modus und die Variable optimiert wurde aus? Sobald Sie den Wert tatsächlich verwenden, kann er den Wert nicht mehr optimieren.

+0

Können Sie den Debugger sogar im Freigabemodus verwenden? – Chris

+0

Sie wetten! Ändern Sie Ihre Build-Konfiguration in "Release" und drücken Sie F5 - sollte noch ausgeführt werden, obwohl YMMV mit Optimierungen aktiviert ist. Ich vermute nur, dass das was hier zu sehen ist. –

+0

Weit draußen ... Ihre Idee scheint dann ziemlich wahrscheinlich. – Chris

1

Ist GetListOfFileNames() Ausführung verzögern? Versuchen Sie, .ToList() darauf anzuheften.

Verwandte Themen