Partager via


L'expression appelle de manière récursive la propriété conteneur '<NomPropriété>'

Mise à jour : novembre 2007

Expression recursively calls the containing property '<propertyname>'

Une instruction dans la procédure Set d'une définition de propriété stocke une valeur dans le nom de la propriété.

L'approche recommandée pour stocker la valeur d'une propriété consiste à définir une variable Private dans le conteneur de la propriété et à l'utiliser dans les procédures Get et Set. La procédure Set doit ensuite stocker la valeur entrante dans cette variable Private.

La procédure Get se comportant comme une procédure Function, elle peut assigner une valeur au nom de la propriété et retourner le contrôle en utilisant l'instruction End Get Toutefois, l'approche recommandée consiste à inclure la variable Private comme valeur dans Return, instruction (Visual Basic).

La procédure Set se comporte comme une procédure Sub, qui ne retourne pas de valeur. Par conséquent, le nom de la procédure ou de la propriété n'a aucune signification particulière dans une procédure Set, et vous ne pouvez pas y stocker de valeur.

L'exemple suivant présente l'approche qui peut générer cette erreur, suivie de l'approche recommandée.

Public Class illustrateProperties
' The code in the following property causes this error.
    Public Property badProp() As Char
        Get
            Dim charValue As Char
            ' Insert code to update charValue.
            badProp = charValue
        End Get
        Set(ByVal Value As Char)
            ' The following statement causes this error.
            badProp = Value
            ' The value stored in the local variable badProp
            ' is not used by the Get procedure in this property.
        End Set
    End Property
' The following code uses the recommended approach.
    Private propValue As Char
    Public Property goodProp() As Char
        Get
            ' Insert code to update propValue.
            Return propValue
        End Get
        Set(ByVal Value As Char)
            propValue = Value
        End Set
    End Property
End Class

Par défaut, ce message est un avertissement. Pour plus d'informations sur le masquage des avertissements ou le traitement des avertissements en tant qu'erreurs, consultez Configuration d'avertissements en Visual Basic.

ID d'erreur : BC42026

Pour corriger cette erreur

  • Réécrivez la définition de la propriété pour utiliser l'approche recommandée, comme illustré dans l'exemple précédent.

Voir aussi

Concepts

Procédures Property

Référence

Property, instruction

Set, instruction (Visual Basic)