2013-09-30 43 views
3

每當我檢查或觀察Delphi調試器中的表達式時,值'()'都會一直出現。'()'在Delphi調試器中意味着什麼?

這是什麼意思?如果它代表某種對象,我怎樣才能想象這個對象的狀態?

+0

任何機會的一些細節。給我們一個這樣的表達的例子。 –

+0

進行檢查通常會有所幫助。如果類型信息不確定,則可能需要首先對其進行類型化。 –

回答

4

這可能意味着兩件不同的事情,具體取決於您是在查看數組還是對象。

對於一個數組,它意味着你有一個包含0個元素的數組(通常是一個動態數組)。

對於一個對象,它有點複雜。這意味着您正在檢查聲明爲的對象,該對象不包含任何數據成員。如果您正在查看代碼中聲明爲TObject的變量(例如事件處理程序中的Sender: TObject),則實際類型幾乎肯定不是TObject,但調試器會將其評估爲聲明的類型。

要獲得實際數據有關的對象,這樣做:

  • 拉起評估/修改(按Ctrl-F7)。
  • 評估對象的實際類型。 (Sender.classtype
  • 評估對象,轉換爲其實際類型。 (TMyObject(Sender))。這會告訴你對象實際包含的內容。
+0

調試器的智能性不足以自動提取對象的類類型並將其作爲實際類型進行檢查,這是一種恥辱。 –