Partager via


Comment : déclarer et appeler une propriété par défaut en Visual Basic

Mise à jour : novembre 2007

Une propriété par défaut est une classe ou une propriété de structure à laquelle votre code peut accéder sans la spécifier. Lorsque le code appelant nomme une classe ou une structure, mais pas une propriété et lorsque le contexte autorise l'accès à une propriété, Visual Basic résout l'accès à cette classe ou à la propriété par défaut de la structure s'il en existe une.

Une classe ou une structure peut avoir au plus une propriété par défaut. Toutefois, vous pouvez surcharger une propriété par défaut et avoir plusieurs versions de celle-ci.

Pour plus d'informations, consultez Propriétés par défaut.

Pour déclarer une propriété par défaut

  1. Déclarez normalement la propriété. Ne spécifiez pas le mot clé Shared ou Private.

  2. Incluez le mot clé Default dans la déclaration de propriété.

  3. Spécifiez au moins un paramètre pour la propriété. Vous ne pouvez pas définir une propriété par défaut qui ne prend pas au moins un argument.

    Default Property myProperty(ByVal index As Integer) As String
    

Pour appeler une propriété par défaut

  1. Déclarez une variable de la classe conteneur ou du type structure.

    Dim x As New class1(3)
    
  2. Utilisez le nom de variable seul dans une expression où vous incluriez normalement le nom de propriété.

    MsgBox(x)
    
  3. Faites suivre le nom de variable d'une liste d'arguments entre parenthèses. Une propriété par défaut doit prendre au moins un argument.

    MsgBox(x(1))
    
  4. Pour récupérer la valeur de propriété par défaut, utilisez le nom de variable, avec une liste d'arguments, dans une expression ou à la suite du signe égal (=) dans une instruction d'assignation.

    MsgBox(x(1) & x(2) & x(3))
    
  5. Pour définir la valeur de propriété par défaut, utilisez le nom de variable, avec une liste d'arguments, à gauche d'une instruction d'assignation.

    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    
  6. Vous pouvez toujours spécifier le nom de propriété par défaut avec le nom de variable, comme vous le feriez pour accéder à une autre propriété.

    x.myProperty(1) = "Hello"
    x.myProperty(2) = " "
    x.myProperty(3) = "World"
    

Exemple

L'exemple suivant déclare une propriété par défaut dans une classe.

Public Class class1
    Private myStrings() As String
    Sub New(ByVal size As Integer)
        ReDim myStrings(size)
    End Sub
    Default Property myProperty(ByVal index As Integer) As String
        Get
            ' The Get property procedure is called when the value
            ' of the property is retrieved.
            Return myStrings(index)
        End Get
        Set(ByVal Value As String)
            ' The Set property procedure is called when the value
            ' of the property is modified.
            ' The value to be assigned is passed in the argument 
            ' to Set.
            myStrings(index) = Value
        End Set
    End Property
End Class

Cet exemple de code est également disponible sous forme d'extrait de code IntelliSense. Dans le sélecteur d'extrait de code, il se trouve dans Langage Visual Basic. Pour plus d'informations, consultez Comment : insérer des extraits de code dans votre code (Visual Basic).

L'exemple suivant montre comment appeler la propriété par défaut myProperty sur la classe class1. Les trois instructions d'assignation stockent des valeurs dans myProperty, et l'appel MsgBox lit les valeurs.

Sub Test()
    Dim x As New class1(3)
    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    MsgBox(x(1) & x(2) & x(3))
End Sub

L'utilisation la plus commune d'une propriété par défaut est Item, propriété (objet Collection) sur plusieurs classes de collection.

Programmation fiable

Les propriétés par défaut peuvent entraîner une légère réduction des caractères de code source, mais elles peuvent rendre votre code plus difficile à lire. Si le code appelant ne connaît pas votre classe ou votre structure, lorsqu'il fait référence au nom de la classe ou de la structure, il ne peut pas déterminer avec certitude si cette référence accède à la classe ou à la structure elle-même ou à une propriété par défaut. Cela peut conduire à des erreurs du compilateur ou à des erreurs d'exécution de logique subtiles.

Vous pouvez légèrement réduire la probabilité que se produisent des erreurs de propriété par défaut en utilisant toujours l'Option Strict, instruction pour affecter la valeur On au contrôle de type de compilateur.

Si vous envisagez d'utiliser une classe ou une structure prédéfinie dans votre code, vous devez déterminer si elle a une propriété par défaut, et, le cas échéant, indiquer son nom.

À cause de ces inconvénients, vous devez envisager de ne pas définir de propriétés par défaut. Afin de garantir la lisibilité du code, vous devez également envisager de toujours faire référence explicitement à toutes les propriétés, y compris aux propriétés par défaut.

Voir aussi

Tâches

Comment : créer une propriété

Comment : déclarer une propriété avec des niveaux d'accès mixtes

Comment : appeler une procédure de propriété

Comment : placer une valeur dans une propriété

Comment : obtenir une valeur d'une propriété

Concepts

Procédures Property

Paramètres et arguments d'une procédure

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

Différences entre les propriétés et les variables en Visual Basic

Référence

Property, instruction

Default (Visual Basic)