Visual Basic a des propriétés par défaut qui sont parfois implicitement appelées lors de l'évaluation d'une expression. Cependant, il semble que je rencontre une contradiction avec cette exécution implicite des propriétés par défaut. La mise en page du projet ressemble:Propriété Visual Basic 6 par défaut pour les fonctions intégrées
Class1:
property test -> class2 (default)
Classe2:
property test -> string "hello world" (default)
Form1:
Dim x As New Class2
MsgBox x
Debug.Print x
L'instruction MsgBox appellera implicitement la valeur par défaut de x (en cours de test sur class1) et en plus elle appellera la valeur par défaut sur celle-ci (en cours de test sur class2) ce qui fait apparaître "hello world" sur l'écran. L'instruction Debug.Print ne le fait pas cependant, et en suivant le débogueur, on peut voir que seul le premier défaut (sur class1) est appelé.
J'ai vérifié que de nombreuses fonctions intégrées telles que MsgBox/RTrim/LTrim présentent ce comportement, et que les méthodes auto-écrites ou les méthodes de classe ne le font pas; mais je suis incapable de comprendre pourquoi cela se produit?