Lire en anglais

Partager via


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

Les membres initialisés dans une liste d’initialiseurs d’objets doivent être des champs ou des propriétés. De plus, les propriétés dans une liste d’initialiseurs ne peuvent pas avoir de paramètres. La propriété à l’origine de cette erreur est surchargée, et chacune de ses versions requiert des arguments. Ainsi, 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 de la liste d’initialiseurs.

Exemple

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

VB
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 aucun argument et peut être initialisée dans une liste d’initialiseurs d’objets, comme indiqué dans la déclaration suivante.

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

La propriété Item est surchargée et chaque surcharge requiert un argument. Ainsi, Item ne peut pas apparaître dans une liste d’initialiseurs d’objets.

VB
' 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’objets.

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

Voir aussi