有时,当我在运行时快速监视表达式时,"快速监视"窗口会显示一个错误,表明该名称在当前上下文中不存在。直接窗口也是如此。然而,我试图评估的表达式被类完全识别,不会引发任何编译错误。
例如,我可以有以下代码行:
double x = Math.Pow(2,3);
如果我把光标停在这一行上,并快速观察"Math.Pow(2,3)"部分,它会给我一个错误,我需要在表达式前面放一个"System.";正如我所说,相同的表达式在代码窗口中运行得很顺利,所以我不确定错误指的是哪个"上下文"。
可能是这些调试窗口引用了类中声明的命名空间,但不能对项目导入的命名空间执行同样的操作吗?
据我所知,QuickWatch和即时窗口在当前执行上下文下执行代码/表达式,因此一旦出现using System;
在代码中,quickwatch窗口不会出现任何问题。您可能遇到了一些visual studio错误。尝试重新启动VisualStudio并再次检查。
我没有遇到过这种问题。当您尝试在具有类似System.Math.Pow(2d, 4d);
的代码时快速查看Math.Pow(2d, 4d);
时,会出现这种问题
解决方案:
转到您的program.cs文件并添加您希望即时窗口使用的using,这适用于控制台和Windows窗体应用程序
在类库项目中将命名空间引用到即时窗口
如果您在"设计时"模式下使用即时窗口,并且希望引用一些命名空间,则需要将输出模式设置为Windows应用程序,并创建一个不执行任何操作的程序。
- 在解决方案资源管理器中右键单击项目,然后单击属性
- 在"应用程序"下,将"输出类型:从类库"更改为"Windows应用程序"
- 将以下伪类添加到项目中:
程序.cs
using System;
//Add all the refrences you need immediate window to use here
namespace YourNamespace
{
static class Program
{
static void Main()
{
}
}
}