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のテスト)を呼び出し、さらにその上でdefault(クラス2のテスト)を呼び出し、 "hello world"が画面に表示されるようにします。 Debug.Printステートメントはこれを行いませんが、デバッガーに続いて、最初のデフォルト(class1上)のみが呼び出されていることがわかります。
MsgBox/RTrim/LTrimなどの組み込み関数の多くがこの動作を示し、自己記述型のメソッドやクラスメソッドがこれをしないことを確認しました。なぜこれが起こるのか分からないのですか?