36

有时,当我在运行时快速监视表达式时,快速监视窗口会显示一个错误,指出当前上下文中不存在该名称。即时窗口也是如此。但是,我尝试评估的表达式完全被类识别,而不会引发任何编译错误。

例如,我可以有以下代码行:

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

如果我将光标停在这一行并快速查看“Math.Pow(2,3)”部分,它会给我一个错误,我需要放置一个“系统”。在我的表情之前;正如我所说,相同的表达式在代码窗口中运行顺利,所以我不确定错误指的是哪个“上下文”。

难道这些调试窗口引用了类中声明的命名空间,但不能对项目导入的命名空间做同样的事情吗?

4

2 回答 2

5

据我了解,QuickWatch 和即时窗口正在当前执行上下文下执行代码/表达式,因此一旦using System; 代码中有一个适当的位置,quickwatch 窗口就不会出现任何问题。您可能遇到了一些 Visual Studio 错误。尝试重新启动 VisualStudio 并再次检查。

我没有遇到过这种问题。Math.Pow(2d, 4d);当您在拥有这样的代码时尝试快速观看时会出现这种问题System.Math.Pow(2d, 4d);

于 2012-03-24T09:08:42.047 回答
5

解决方案:

转到您的 program.cs 文件并添加您希望即时窗口使用的使用,这适用于控制台和 Windows 窗体应用程序

将命名空间引用到类库项目中的立即窗口

如果您在“设计时”模式下使用即时窗口,并且想要为其引用一些命名空间,则需要将输出模式设置为 Windows 应用程序,并创建一个不执行任何操作的程序。

  1. 在解决方案资源管理器中右键单击您的项目,然后单击属性
  2. 在应用程序下,更改输出类型:从类库到 Windows 应用程序
  3. 将以下虚拟类添加到您的项目中:

程序.cs

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

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

        }
    }
}
于 2014-01-02T14:10:56.330 回答