Partager via


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

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 Default (Visual Basic).

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

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

La propriété Item de diverses classes de collection représente l'utilisation la plus courante d'une propriété par défaut.

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 engendrer des erreurs du compilateur ou des erreurs de logique d'exécution 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é (Visual Basic)

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

Comment : appeler une procédure de propriété (Visual Basic)

Comment : placer une valeur dans une propriété (Visual Basic)

Comment : obtenir une valeur d'une propriété (Visual Basic)

Référence

Property, instruction

Default (Visual Basic)

Concepts

Procédures Property (Visual Basic)

Paramètres et arguments d'une procédure (Visual Basic)

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