有时,当我在运行时快速监视表达式时,“快速监视”窗口会显示一条错误,指出当前上下文中不存在该名称。即时窗口也是如此。然而,我尝试评估的表达式完全被类认可,而不会抛出任何编译错误。
例如,我可以使用以下代码行:
double x = Math.Pow(2,3);
如果我将光标停在此行并快速观察“Math.Pow(2,3)”部分,它会给我一个错误,我需要放置一个“系统”。在我表达之前;正如我所说,同一个表达式在代码窗口中运行顺畅,因此我不确定错误所指的“上下文”是什么。
可能是这些调试窗口引用了类中声明的命名空间,但是对于项目导入的命名空间不能这样做吗?
答案 0 :(得分:4)
据我所知,QuickWatch和Immediate窗口正在执行当前执行上下文下的代码/表达式,所以一旦有using System;
在代码中,quickwatch窗口不会出现任何问题。你可能遇到过一些visual studio bug。尝试重新启动VisualStudio并再次检查。
我没有遇到过这种问题。当您尝试使用此代码Math.Pow(2d, 4d);
System.Math.Pow(2d, 4d);
时会出现此类问题
答案 1 :(得分:4)
<强>解决方案:强>
转到program.cs文件并添加您希望立即使用的窗口的使用,这适用于Console和Windows窗体应用程序
在类库项目中将名称空间引用到立即窗口
如果您在“设计时”模式下使用立即窗口,并希望引用一些名称空间,则需要将输出模式设置为Windows应用程序,并创建一个不执行任何操作的程序。
Program.cs的
using System;
//Add all the refrences you need immediate window to use here
namespace YourNamespace
{
static class Program
{
static void Main()
{
}
}
}