Freigeben über


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

Standardeigenschaften

Prozedurüberladung

Referenz

Overloads