2012-03-21 14 views
29

A veces, cuando una expresión Inspección rápida en tiempo de ejecución, la ventana Inspección rápida muestra un error diciendo el nombre no existe en el contexto actual. Lo mismo ocurre con la ventana inmediata. La expresión que trato de evaluar, sin embargo, es perfectamente reconocida por la clase, sin arrojar ningún error de compilación.¿Cómo hago referencia a un espacio de nombre que se utilizará de inmediato o en un reloj rápido?

Por ejemplo, puedo tener la siguiente línea de código:

double x = Math.Pow(2,3); 

Si dejo el cursor en esta línea y la Inspección rápida "Math.pow (2,3)" parte, me da una error y necesito colocar un "Sistema". antes de mi expresión; como dije, la misma expresión se ejecuta sin problemas en la ventana de código, por lo que no estoy seguro de cuál es el "contexto" al que se refiere el error.

Podría ser que estos espacios de nombres de referencia ventanas de depuración declaradas en la clase, pero no pueden hacer lo mismo para el espacio de nombres importados por el proyecto?

+0

funciona para mí en una aplicación de consola. ¿Estás usando una plantilla de proyecto especial? – Alex

+2

Usted simplemente no puede. Tiene que ponerle un prefijo al espacio de nombre. – SimpleVar

+0

También funciona bien sin el espacio de nombres para mí también. ¿Qué edición/versión/service pack de VS está usando? – adelphus

Respuesta

4

En mi comprensión de la Inspección rápida y las ventanas inmediatas están ejecutando el código/expresiones en el contexto de ejecución actual, por lo que una vez que hay un using System; en su lugar en el código, la ventana Inspección rápida no va a dar ningún problema. Es posible que haya encontrado algún error visual en el estudio. Intente reiniciar VisualStudio y vuelva a verificar.

No he encontrado con este tipo de problema. Este tipo de problema se surgir cuando intenta Inspección rápida Math.Pow(2d, 4d); al tener el código como este System.Math.Pow(2d, 4d);

+13

Lo encuentro todo el tiempo. Lo mismo mis colegas. Usando VS2010 SP1 con proyectos regulares de biblioteca de clase C#. A veces reconoce el espacio de nombres, a veces no lo hace. Nunca encontré el patrón. Siempre pensé que era un problema frecuente en VS y que todos lo experimentan. –

+0

¿Tiene alguna extensiones relacionados con la depuración en VS2010, como yo también estoy usando el mismo VS2010 y no han funcionado en este hasta ahora.por lo tanto, puede deberse a algunas extensiones, supongo. – Saravanan

+0

No, no hay extensiones de depuración. –

3

Solución:

Ir al archivo de Program.cs y añadir los usings usted quiere que su ventana de inmediato a uso, esto funciona tanto para la consola y aplicaciones de Windows Forms

espacios de nombres a refrence ventana Inmediato en un proyecto de biblioteca de clases

Si está utilizando el Im mediar en la ventana en modo "Diseño Tiempo", y quiere hacer referencia a algunos espacios de nombres a la misma, es necesario configurar el modo de ouput de aplicación de Windows, y crear un programa que no hace nada.

  1. Haga clic derecho en su proyecto en el explorador de soluciones y en Propiedades del
  2. Bajo aplicación, cambiar el tipo de salida: de Clase-Biblioteca de aplicación de Windows
  3. Añadir la siguiente clase ficticia para su proyecto:

Program.cs

using System; 
//Add all the refrences you need immediate window to use here 

namespace YourNamespace 
{ 
    static class Program 
    { 
     static void Main() 
     { 

     } 
    } 
} 
+0

⁺¹, agregando un espacio de nombre al archivo «Program.cs» de hecho hizo el truco para la ventana Inmediato! –

+0

Excepto en el caso del espacio de nombres System.Linq y la depuración de lambda VS2015, en archivos de origen donde aún no se ha ejecutado ninguna expresión de linq. Agregue una línea 'var temp = Enumerable.Range (1, 1);' antes de su punto de interrupción y reinicie para resolver esto. –

Cuestiones relacionadas