Die Eigenschaft '<propertyname>' kann nicht in einem Objektinitialisiererausdruck initialisiert werden, da alle zugreifbaren Überladungen Argumente erfordern
Aktualisiert: November 2007
Property '<propertyname>' cannot be initialized in an object initializer expression because all accessible overloads require arguments
Die Member, die in einer Objektinitialisiererliste initialisiert sind, müssen entweder Felder oder Eigenschaften sein. Darüber hinaus können Eigenschaften in einer Initialisiererliste nicht über Parameter verfügen. Die Eigenschaft, die diesen Fehler verursacht, ist überladen, und jede ihrer Versionen erfordert Argumente. Deshalb kann die Eigenschaft nicht in einer Objektinitialisiererliste initialisiert werden.
Fehler-ID: BC30993
So beheben Sie diesen Fehler
- Entfernen Sie die Eigenschaft, für die Argumente aus der Initialisiererliste erforderlich sind.
Beispiel
Die folgende Klasse enthält drei Eigenschaftendefinitionen: eine für TotalItems und zwei für Item, das überladen ist.
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
Für die TotalItems-Eigenschaft sind keine Argumente erforderlich, und sie 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. Deshalb kann Item nicht in einer Objektinitialisiererliste angezeigt werden.
' 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
Aufgaben
Gewusst wie: Aufrufen einer Eigenschaftenprozedur
Konzepte
Eigenschaften und Property-Prozeduren
Objektinitialisierer: Benannte und anonyme Typen