Visual Basic具有在評估表達式時有時隱式調用的默認屬性。但是,我似乎遇到了這種隱式執行默認屬性的差異。該項目的佈局是這樣的:Visual Basic 6內置函數的默認屬性
的Class1:
property test -> class2 (default)
等級2:
property test -> string "hello world" (default)
Form1中:
Dim x As New Class2
MsgBox x
Debug.Print x
MsgBox語句將默認調用x的默認值(在class1上測試),並進一步調用默認值(在class2上測試),這會導致屏幕上顯示「hello world」。但是,Debug.Print語句不會執行此操作,並且通過跟隨調試程序,可以看到只有第一個默認值(在class1上)被調用。
我已經驗證了許多內置函數(如MsgBox/RTrim/LTrim)表現出這種行爲,並且任何自寫的方法或類方法都不會執行此操作;但我無法弄清楚爲什麼會發生這種情況?