Partager via


La propriété '<nom de la propriété>' ne peut pas être initialisée dans une expression d'initialiseur d'objet, car toutes les surcharges accessibles nécessitent des arguments

Mise à jour : novembre 2007

Property '<propertyname>' cannot be initialized in an object initializer expression because all accessible overloads require arguments

Les membres initialisés dans une liste d'initialiseurs d'objets doivent être des champs ou des propriétés. En outre, les propriétés d'une liste d'initialiseurs ne peuvent pas comporter de paramètres. La propriété qui provoque cette erreur est surchargée, et chacune de ses versions a besoin d'arguments. Par conséquent, la propriété ne peut pas être initialisée dans une liste d'initialiseurs d'objets.

ID d'erreur : BC30993

Pour corriger cette erreur

  • Supprimez la propriété qui requiert des arguments dans la liste d'initialiseurs.

Exemple

La classe suivante contient trois définitions de propriétés : une pour TotalItems et deux pour Item, surchargée.

    Class CollectionOfItems
        Property TotalItems() As Integer
            Get
            End Get
            Set(ByVal value As Integer)
            End Set
        End Property
        Property Item(ByVal Key As String) As Object
            Get
            End Get
            Set(ByVal value As Object)
            End Set
        End Property
        Property Item(ByVal Index As Integer) As Object
            Get
            End Get
            Set(ByVal value As Object)
            End Set
        End Property
    End Class

La propriété TotalItems ne requiert pas d'arguments et peut être initialisée dans une liste d'initialiseurs d'objets, comme indiqué à la déclaration suivante.

Dim coinCollection As New CollectionOfItems With { .TotalItems = 0 }

La propriété Item est surchargée, et chaque surcharge requiert un argument. Par conséquent, Item ne peut pas figurer dans une liste d'initialiseurs d'objets.

' The following declaration is not valid.
' Dim coinCollection As New CollectionOfItems With { .TotalItems = 0, _
'    .Item = aCoinObject }

Pour éviter cette erreur, initialisez la propriété Item à l'extérieur de l'initialiseur d'objet.

Dim coinCollection As New CollectionOfItems With { .TotalItems = 0 }
coinCollection.Item(1) = aCoinObject

Voir aussi

Tâches

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

Concepts

Propriétés et procédures de propriété

Initialiseurs d'objets : types nommés et anonymes

Propriétés par défaut

Surcharge de procédure

Référence

Overloads