Delphi调试器中的'()'表示什么意思?

3
每当我在 Delphi 调试器中检查或观察表达式时,都会出现值 '()'。这是什么意思?如果它代表某种对象,那么如何可视化该对象的状态?

有机会详细说明一下吗?给我们一个这样表达的例子。 - David Heffernan
进入检查通常会有所帮助。如果类型信息不确定,您可能需要先进行类型转换。 - Matt Allwood
1个回答

4

这个术语有两种不同的含义,取决于您是查看数组还是对象。

对于数组,它表示您有一个包含0个元素的数组(通常是动态数组)。

对于对象来说,情况要复杂一些。它意味着您正在检查一个对象,该对象被声明为不包含任何数据成员的类型。如果您查看在代码中声明为TObject的变量(例如事件处理程序中的Sender:TObject),则实际类型几乎肯定不是TObject,但调试器将其评估为声明类型。

要获取有关对象的实际数据,请执行以下操作:

  • 打开“评估/修改”窗口(Ctrl-F7)。
  • 评估对象的实际类型。(Sender.classtype
  • 评估对象,强制转换为其实际类型。(TMyObject(Sender))。这将告诉您对象实际包含什么。

1
很遗憾,调试器不够智能化,无法自动提取对象的类类型并将其作为实际类型进行检查。 - Remy Lebeau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接