Partager via


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

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

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.

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

  1. Déclarez la propriété de la façon normale. Ne spécifiez pas le mot clé ou Shared le Private mot clé.

  2. Incluez le Default mot clé 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 du type de classe ou de structure conteneur.

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

    MsgBox(x)
    
  3. Suivez le nom de la variable avec 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 la variable, avec une liste d’arguments, dans une expression ou en suivant la connexion égale (=) à une instruction d’affectation.

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

    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 la variable, comme vous le feriez pour accéder à n’importe quelle autre propriété.

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

Exemple 1

L’exemple suivant déclare une propriété par défaut sur 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

Exemple 2

L’exemple suivant montre comment appeler la propriété myProperty par défaut sur la classe class1. Les trois instructions d’affectation stockent les 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 courante d’une propriété par défaut est la Item[] propriété sur différentes classes de collection.

Programmation robuste

Les propriétés par défaut peuvent entraîner une petite réduction des caractères de code source, mais elles peuvent rendre votre code plus difficile à lire. Si le code appelant n’est pas familiarisé avec votre classe ou structure, lorsqu’il fait une référence à la classe ou au nom de la structure, il ne peut pas être certain que cette référence accède à la classe ou à la structure elle-même, ou à une propriété par défaut. Cela peut entraîner des erreurs de compilateur ou des erreurs logiques d’exécution subtiles.

Vous pouvez réduire un peu le risque d’erreurs de propriété par défaut en utilisant toujours l’instruction Option Strict pour définir la vérification Ondu type du compilateur sur .

Si vous envisagez d’utiliser une classe ou une structure prédéfinie dans votre code, vous devez déterminer s’il a une propriété par défaut et, le cas échéant, quel est son nom.

En raison de ces inconvénients, vous devez envisager de ne pas définir les propriétés par défaut. Pour la lisibilité du code, vous devez également envisager de toujours faire référence à toutes les propriétés explicitement, même les propriétés par défaut.

Voir aussi