Freigeben über


Die '<propertyname>'-Eigenschaft kann nicht in einem Objektinitialisiererausdruck initialisiert werden, da sie Argumente erfordert.

Aktualisiert: November 2007

Property '<propertyname>' cannot be initialized in an object initializer expression because it requires arguments

Die in einer Objektinitialisiererliste initialisierten Member müssen Felder oder Eigenschaften sein, und Eigenschaftenmember können nicht über Parameter verfügen. Die Standardeigenschaften erfordern beispielsweise Argumente, sie können daher nicht in einer Objektinitialisiererliste initialisiert werden. Weitere Informationen finden Sie unter Standardeigenschaften.

Fehler-ID: BC30992

So beheben Sie diesen Fehler

  • Entfernen Sie alle Eigenschaften mit Argumenten von der Initialisierungsliste.

Beispiel

Die folgende Klasse enthält die Standardeigenschaft defaultProp, die ein Ganzzahlargument erfordert.

    Public Class SomeStrings
        Private myStrings() As String
        Sub New(ByVal size As Integer)
            ReDim myStrings(size)
        End Sub
        Default Property defaultProp(ByVal index As Integer) As String
            Get
                Return myStrings(index)
            End Get
            Set(ByVal Value As String)
                myStrings(index) = Value
            End Set
        End Property
    End Class

Da die Standardeigenschaft ein Argument erfordert, verursacht die folgende Deklaration einen Fehler.

' Dim strs As New SomeStrings(2) With { .defaultProp = "One" }

Siehe auch

Konzepte

Standardeigenschaften

Eigenschaften und Property-Prozeduren

Objektinitialisierer: Benannte und anonyme Typen