如何引用要在immediate或quickwatch中使用的命名空间



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

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

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应用程序,并创建一个不执行任何操作的程序。

  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()
        {
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新