如何引用要在立即或快速监视中使用的命名空间?

cca*_*oni 32 c# immediate-window visual-studio-2010

有时,当我在运行时快速监视表达式时,"快速监视"窗口会显示一条错误,指出当前上下文中不存在该名称.即时窗口也是如此.然而,我尝试评估的表达式完全被类认可,而不会抛出任何编译错误.

例如,我可以使用以下代码行:

double x = Math.Pow(2,3);
Run Code Online (Sandbox Code Playgroud)

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

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

Sar*_*nan 6

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

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

  • 我经常遇到这种情况。我的同事也是如此。将 VS2010 SP1 与常规 C# 类库项目一起使用。有时它可以识别名称空间,有时则不能。一直没找到模式。我一直认为这是 VS 中的一个普遍问题,每个人都会经历过。 (19认同)

Bja*_*eCK 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()
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)