Die Eigenschaft „<propertyname>“ kann nicht in einem Objektinitialisiererausdruck initialisiert werden, da alle Überladungen, auf die zugegriffen werden kann, Argumente erfordern.

Die in einer Objektinitialisiererliste initialisierten Member müssen Felder oder Eigenschaften sein. Außerdem können Eigenschaften in einer Initialisiererliste keine Parameter haben. Die Eigenschaft, die diesen Fehler verursacht, ist überladen, und jede ihrer Versionen erfordert Argumente. Aus diesem Grund kann die Eigenschaft in einer Objektinitialisiererliste nicht initialisiert werden.

Fehler-ID: BC30993

So beheben Sie diesen Fehler

  • Entfernen Sie die Eigenschaft, für die Argumente erforderlich sind, aus der Initialisiererliste.

Beispiel

Die folgende Klasse enthält drei Eigenschaftendefinitionen: eine für TotalItems und zwei für Item. Letztere ist überladen.

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  

Die TotalItems -Eigenschaft erfordert keine Argumente und kann in einer Objektinitialisiererliste initialisiert werden, wie in der folgenden Deklaration dargestellt.

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

Die Item -Eigenschaft ist überladen, und jede Überladung erfordert ein Argument. Aus diesem Grund darf Item nicht in einer Objektinitialisiererliste enthalten sein.

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

Um diesen Fehler zu vermeiden, initialisieren Sie die Item -Eigenschaft außerhalb des Objektinitialisierers.

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

Siehe auch