2012-04-18 20 views
7

Según Microsoft: "La ventana Inmediato se usa en el momento del diseño para depurar y evaluar expresiones, ejecutar sentencias, imprimir valores de variables, etc."Ventana Inmediato en Modo de Diseño

Observe que dice "en el momento del diseño". He leído otras declaraciones en la web a este efecto también.

Sin embargo, cuando alguien pregunta por qué obtienen el mensaje "La expresión no puede evaluarse mientras está en modo de diseño". error, todo el mundo siempre dice que solo funciona en modo de depuración.

Entiendo que algunas cosas no funcionarán en el modo de diseño cuando hacen referencia a elementos como los valores del cuadro de texto. Pero realmente no entiendo por qué tengo que establecer un punto de interrupción, ejecutar mi aplicación y esperar a que llegue al punto de interrupción, solo para averiguar qué es 1 + 1.

Admito a la frustración que vengo de Visual Basic 6.0. Allí puedo imprimir 1 + 1 y obtener 2 mientras estoy en modo de diseño. También puedo llamar a funciones públicas y obtener respuestas mientras estoy en modo de diseño.

Todo esto viene de mi búsqueda de respuestas a la conversión de tipo. Como no pude encontrar una respuesta en la web, decidí que la manera más rápida y sencilla era probar algunas declaraciones RÁPIDAS REALES en la ventana inmediata para ver cuál funcionaba.

¿Es .NET un paso atrás cuando se usa la ventana inmediata?

+1

No funciona en modo de diseño, pero es incómodo. Lea http://msdn.microsoft.com/en-us/library/f177hahy(v=vs.100).aspx para tener una idea de las limitaciones. Luego relájate con un buen cóctel de ginebra y limonada. –

+0

VB6 era un lenguaje interpretado mientras estaba en el IDE. Si favorece este tipo de interacción, entonces debe buscar un lenguaje que use un intérprete, no un compilador como VB.NET. Python, Ruby, la mayoría de cualquier lenguaje dinámico realmente. –

+0

Igby, tuviste la mejor solución. Esto era en su mayoría una diatriba y la idea de una bebida era muy atractiva. :-) –

Respuesta

0

Para mí, puedo hacer lo que mencionaste en la ventana inmediata en Visual Studio 2008, como encontrar la suma de 1 + 1 o averiguar la longitud de "sdfd". La longitud, etc. se puede hacer desde la ventana inmediata. Por lo tanto, no es un paso atrás en .NET.

1

En resumen, depende del contexto de su aplicación, es decir, qué solución ha seleccionado actualmente en el Explorador de soluciones y su tipo de proyecto. p.ej. Web Projects no evaluará las expresiones inmediatas en el momento del diseño porque necesita configurar ese entorno; sin embargo, los proyectos de biblioteca y tipo de consola lo harán.

MSDN states:

"Al establecer el contexto para la evaluación de la expresión tiempo de diseño, de Visual Studio hace referencia al proyecto seleccionado en la Solución Explorer. Si no se selecciona ningún proyecto en el Explorador de soluciones, Visual estudio intenta evaluar la función contra el proyecto de inicio Si la función no se puede evaluar en el contexto actual, recibirá un mensaje de error . Si está intentando evaluar una función en un proyecto que no es el proyecto de inicio para la solución y d usted recibe un error, intente seleccionar el proyecto en el Explorador de soluciones y intente la evaluación nuevamente ".

Sin embargo, si se encuentra en un proyecto web, deberá acceder a un punto de interrupción para evaluar expresiones en la ventana Inmediato.

This may be covered in other answers

3

entiendo su frustración. Afortunadamente, el desarrollo de Roslyn (el compilador de código abierto C# de Microsoft) permitió tener un llamado "Windows interactivo" en Visual Studio.Es necesario instalar Roslyn, y después de algunos pasos de configuración fáciles que puede evaluar C# expresiones en esa ventana: https://github.com/dotnet/roslyn/wiki/Interactive-Window

Es muy diferente de la ventana Inmediato ya bucle REPL puede ser un poco aislado, pero parece que incluso se puede interactuar con su proyecto hasta cierto punto: Can the C# interactive window interact with my code?

Esto se remonta incluso a 2011-2012, y es parte predeterminada de Visual Studio 2015 CTP1 desde finales de 2015: View -> Other Windows -> C# Interactive

Cuestiones relacionadas