问题标签 [immediate-window]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
196 浏览

c# - 如何通过 Visual Studio 中的即时窗口访问派生类的基类的成员?

使用 Visual Studio 中的即时(或监视)窗口(我使用的是 VS2015 社区版),可以在中断模式下访问类的属性或方法。但是,对于从另一个类派生的类,如果基类的成员已在派生类中被覆盖,我将找不到访问基类成员的方法,即使从代码中可以直接执行此操作,如本示例所示:

如果我运行此代码,输出(显然)是:

我是鸵鸟,不是动物

Name如果我在类的属性里面设置断点Ostrich,然后Name在立即窗口中检查属性,输出如下图:

相反,如果我要求运行基类的实现,我希望输出是“动物”。事实上,我明白了:

这似乎不仅没有帮助,而且实际上是误导/不正确的:我宁愿返回一个错误而不是错误的答案。

使用 Watch 窗口,只显示派生类的实现:

迷你手表窗口截图

有什么方法可以使用立即窗口来访问类基类的被覆盖成员?

0 投票
1 回答
71 浏览

logging - 打印/保存即时窗口结果 - 记录到文件

我想知道是否有办法将所有信息从立即窗口打印到文件中或直接返回到特定单元格?

当代码运行时,它会在“立即”窗口中显示结果,但此时我需要将它们复制/粘贴到单元格或另一个 .txt 文件中。因此,如果我可以将分析后的所有结果记录或打印到一个文件中(在我的桌面上)或者只是回到单元格中,那就太好了。

0 投票
1 回答
560 浏览

visual-studio - VS2015:将鼠标悬停在即时窗口中的变量上时,工具提示停止显示

我记得前段时间我可以在调试期间在即时窗口中分配一个变量,当将鼠标悬停在我可以看到带有成员值的工具提示时,就像将鼠标悬停在代码中的变量上一样。

现在这个功能在我的 Visual Studio 2015 中停止工作了。微软是在 VS2015 中删除了这个功能还是我搞砸了?菜单中某处是否有此设置?

编辑:因为不是每个人都非常确定这个功能是否存在,所以我添加了一个来自 Visual Studio 2012 的屏幕截图,您可以在其中清楚地看到在即时窗口中键入的文本的工具提示(这里我使用变量web): Visual Studio 2012 中悬停时的即时窗口工具提示

0 投票
3 回答
697 浏览

vba - 如何判断是否从即时窗口调用 Sub

一些我只想从即时窗口运行的潜艇,比如这个有点冒险的潜艇:

万一你无法解决;它向应用程序发送ctrl+aDel,并具有清除当时光标周围的任何内容的效果。

我通过键入在即时窗口中使用它,即时窗口clear中的所有内容都被删除。

正如您可能知道的那样,这个 Sub 非常危险并且相对容易意外调用。因此,我希望它在从即时窗口调用时运行

  • 不是来自另一个子
  • 不是来自表单控件
  • 不是来自 ActiveX(虽然这实际上只是一个子)
  • 不是来自用户调用(通过开发人员/宏选项卡)

而且也不是来自任何其他来源(我已经列出了所有这些,因为我认为即使您不能直接判断它是由即时窗口调用的,您也可以通过排除其他选项来间接判断)

这可能以编程方式进行吗?理想情况下,我只想在我的clear()sub 开始时进行一个简单的布尔检查,告诉它什么都不做,除非被即时窗口调用。


注意

一种方法可能是通过使用调用堆栈ctrl+L打开对话框),因为我注意到立即调用在堆栈中没有留下任何痕迹,而 subs 调用clear()被列出,因此可以排除。但我不确定如何通过 VBA 访问它

0 投票
2 回答
123 浏览

c# - IEnumerable在代码中为假但在立即窗口中为真?

调试一些代码时,我遇到了一个“是 IEnumerable”比较,它在代码中令人困惑地评估为 false,但在即时窗口中为 true。

我想知道是否有人可以阐明为什么会发生这种情况?

例子:

(立即窗口)

0 投票
2 回答
323 浏览

vba - 将 debug.print 发送到不同的立即窗口

我在 Access 中设置了一个多线程例程,它同时打开多个 Access 文件并在每个文件中执行特定的功能。这些文件并行执行。我想将Debug.Print消息发送到启动多线程的主文件。

我不确定它是否可以做到这一点,或者是否有更好的解决方案。

0 投票
1 回答
748 浏览

c# - 您如何在即时窗口中调用组装?

我正在尝试在 中进行一些调试Immediate Window,您如何执行诸如Assembly.Get...()?我唯一得到的是The name 'Assembly' does not exist in the current context。我确实有using System.Reflection我正在查看的堆栈,我什至有代码,例如

但是Assembly.GetEntryAssembly()再次运行试图在Immediate Window仍然无法正常工作。

不过,有一件事是我要调试的代码来自我dll编译的其他代码。它有什么改变吗?它using System.Reflection;在我正在尝试调试的文件中。

更新

Assembly实际上,很奇怪,当代码在另一个 dll 中时,我似乎无法访问。请参见下文,在您看到Hello.exe我可以Assembly正常访问的堆栈中,但是,一旦它尝试执行来自我的其他 dll 的代码,我就无法获取Assembly.

更新2

在回复温迪的评论时,这里是层次结构。我有 2 个 VS 解决方案,一个是构建一个巨大的合并程序集,供其他程序使用。所以在MyProgram.Assembly解决方案中,我有几个项目,每个项目都会构建自己的 dll,然后我有我的Assembly项目,这个项目会将所有其他 dll 合并在一起生成我的MyProgram.Assembly.dll.

然后MyOtherProgram将添加一个Reference指向MyProgram.Assembly.dll并像任何其他 dll 一样使用它。

在此处输入图像描述

我还想指出,代码本身可以访问Assembly,而不是Immediate Window,例如:

如果我在上面提到的代码处设置断点,然后输入AssemblyImmediate Window仍然会说未找到组装,但我可以看到Autos可见设置正确。

请注意,我的程序没有任何问题,一切都按预期运行,但要到达那里,我必须编写代码并多次重新运行程序才能知道我从中得到了什么值,Assembly直到我最终得到我想要的想要......只是它非常令人沮丧和烦人,无法Immediate Window像我认为的那样使用它来调试它。

0 投票
1 回答
531 浏览

c# - 立即窗口中的静态类方法

如果我有一个FilePathHandler具有静态方法的类FormatSubPath并且我的代码中有断点,是否有办法在即时窗口或监视窗口中调用此方法?

用法;

如果我在“立即”窗口中编写上述内容以在断点期间即时测试某些内容,则会收到错误“错误 CS0103:当前上下文中不存在名称‘FilePathHandler’”。无论如何要这样做还是不可能?

0 投票
2 回答
28124 浏览

excel - 如何在即时窗口中打印范围变量?Excel VBA

我正在尝试一些应该非常简单的事情。但是我今天才开始学习,并且不太明白。

到目前为止,这是我的代码:

我正在使用的数据是这样的:

在此处输入图像描述

我不断收到“运行时错误'13':类型不匹配”我用谷歌搜索了这个错误,但我仍然不确定如何解决这个问题。我想在即时窗口中打印变量 rng。

0 投票
1 回答
148 浏览

c# - 从即时窗口执行时使用 LINQ 更新列表,而不是直接从代码执行

我面临一个非常奇怪的问题。我有一个列表,并试图从以下 for 循环中更新其内部结构字段之一。

在循环的第三行,您可以看到我使用 select 本身将值更改为 True。当我运行应用程序时,返回对象上的值看起来没有变化。但是,如果我们通过在循环中放置一个断点来在即时窗口中执行同一行,它会更新 Data 并反映在返回的对象AppUserDetail 上。我真的很困惑为什么它只能从即时窗口更新,而不是直接执行代码。

item.AppUserSecurityGroupXrefs.Where(a => list.Contains(a.SecurityGroupId)).Select(b => b.SecurityGroup).Select(c => c.Selected = true);