2010-05-06 13 views
6

En Visual Studio 2010 veces cuando quiero obtener el valor de una variable durante la depuración, que me dice que es "no existe en este contexto", cuando es obvio que lo hace.¿Por qué Visual Studio 2010 dice que no puede mostrar una variable durante la depuración?

He encontrado que si uso la variable, como en el pantalla abajo, entonces es capaz de demostrarlo.

¿Alguien ha experimentado esto? Visual Studio 2008 nunca hizo esto.

¿Cómo puedo obtener Visual Studio 2010 para que siempre me muestre valores variables durante la depuración?

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

+0

Pregunta tonta. El método de ayuda no está utilizando LINQ ¿verdad? –

+0

¿Qué idioma/entorno (ASP.NET?) Está depurando? ¿Te conectaste al proceso después de que ya se había ejecutado? (El .NET JIT puede compilar de forma diferente cuando no hay un depurador conectado). –

+0

* fileNames * se optimiza porque en realidad no se hace nada con él. Cuando utilizo las variables de la misma manera (es decir, solo para fines de depuración), lo sigo con * Console.Write (fileNames.Count) * (o Debug.Write) solo para garantizar que se "usa" . – slugster

Respuesta

4

aventurar una conjetura ..

Podría ser que su funcionamiento en modo de lanzamiento y la variable ha sido optimizado a cabo? Una vez que realmente usa el valor, ¿ya no puede optimizar el valor?

+0

¿Se puede usar el depurador en el modo de lanzamiento? – Chris

+0

¡apueste! Cambie la configuración de su compilación a 'Liberar' y presione F5; aún debe ejecutarse, aunque YMMV con las optimizaciones habilitadas. Solo estoy adivinando que eso es lo que podría ser visto aquí. –

+0

Lejos ... tu idea parece bastante probable en ese momento. – Chris

1

¿GetListOfFileNames() difiere la ejecución? Intente tachar .ToList() en él.

Cuestiones relacionadas