Partager via


Modifications des propriétés par défaut pour les utilisateurs de Visual Basic 6.0

Mise à jour : novembre 2007

Dans Visual Basic 2008, la prise en charge des propriétés par défaut a été modifiée en vue d'une simplification et d'une amélioration de la lisibilité.

Visual Basic 6.0

Dans Visual Basic 6.0, les propriétés par défaut sont prises en charge sur les objets. Prenons par exemple un contrôle Label ayant pour propriété par défaut Caption. Les deux assignations de l'exemple suivant sont équivalentes.

Dim lbl As Label 
lbl = "Important" 
lbl.Caption = "Important" 

Si les propriétés par défaut vous permettent d'abréger quelque peu le code Visual Basic lors de son écriture, elles présentent plusieurs inconvénients :

  • Elles peuvent entraver la lisibilité du code. Dans l'exemple précédent, si vous ne connaissez pas bien le contrôle Label, la première assignation ne suffit pas à déterminer si la chaîne "Important" est stockée directement dans la variable lbl ou dans une propriété par défaut.

  • En partant d'un objet que vous comptez utiliser dans le code, il n'est pas toujours aisé de déterminer s'il possède une propriété par défaut et, même si c'est le cas, de quelle propriété il s'agit.

  • Les propriétés par défaut rendent obligatoire la présence de l'instruction Set dans le langage Visual Basic. L'exemple suivant démontre que Set est nécessaire pour indiquer que c'est une référence d'objet, et non une propriété par défaut, qui doit être assignée.

    Dim lbl1 As Label, lbl2 As Label 
    lbl1 = "Saving" ' Assign a value to lbl1's Caption property. 
    lbl2 = lbl1       ' Replace lbl2's Caption property with lbl1's. 
    Set lbl2 = lbl1   ' Replace lbl2 with an object reference to lbl1. 
    

Visual Basic 2008

Dans Visual Basic 2008, les propriétés par défaut ne sont pas prises en charge à moins d'accepter des arguments. En raison de cette modification syntaxique, les instructions Let et Set ne sont pas nécessaires pour spécifier ce qu'il faut assigner et elles ne sont pas employées dans les instructions d'assignation. La propriété Text remplace la propriété Caption du contrôle Label, et l'exemple précédent peut être réécrit comme suit.

Dim L1, L2 As New Label   ' Both become type Label
                          ' in the new version of Visual Basic.
L1.Text = "Saving"        ' Assign Text property. 
L2.Text = L1.Text         ' Copy Text property. 
L2 = L1                   ' Copy object reference.

Let est toujours un mot réservé dans Visual Basic 2008, bien qu'il ne soit pas utilisé d'un point de vue syntaxique. Cela permet d'éviter la confusion avec ses significations précédentes. Visual Basic 2008 utilise l'instruction Set pour les procédures de propriété qui définissent la valeur d'une propriété.

Propriétés paramétrées

Les propriétés par défaut qui acceptent des arguments ne sont pas ambiguës et sont prises en charge dans Visual Basic 2008. Les propriétés par défaut sont le plus souvent associées à des classes de collection. Par exemple, dans l'espace de noms System.Windows.Forms, la classe Form prend en charge la hiérarchie suivante :

Objet Form

   Propriété Controls (retourne un objet Control.ControlCollection de ce formulaire)

      Objet Control.ControlCollection (la propriété par défaut est Item)

         Propriété Item (retourne un objet Control pour un élément de la collection)

            Objet Control

La propriété Controls retourne un objet Control.ControlCollection et la propriété Item retourne un objet Control. L'exemple suivant illustre des cas d'utilisation valide et non valide de propriétés par défaut dans Visual Basic 2008.

Dim F As New Form   ' Assume F has been created and initialized.
F.Controls.Item(0).Text = "Stop"  ' Valid -- no default properties used. 
F.Controls(0).Text = "Stop"  ' Valid -- Item is parameterized. 
'F(0).Text = "Stop"  ' INVALID -- Form does not have a default property. 
'F.Controls(0) = "Stop"  ' INVALID -- No default property on Control. 

Déclaration de propriété par défaut

Dans Visual Basic 2008, pour spécifier une propriété comme la propriété par défaut, vous devez faire débuter sa déclaration par le mot clé Default. Si vous surchargez le nom de la propriété, vous devez spécifier Default dans toutes les déclarations de surcharge. Vous ne pouvez pas déclarer une propriété par défaut comme Shared ou Private.

Voir aussi

Concepts

Modifications des procédures de propriétés pour les utilisateurs de Visual Basic 6.0

Récapitulatif des modifications relatives à la prise en charge des éléments de programmation

Référence

Text

Label

Set, instruction (Visual Basic)

System.Windows.Forms

Form

Control.ControlCollection

Control

Default (Visual Basic)