Impossibile inizializzare la proprietà '<nome proprietà>' in un'espressione dell'inizializzatore di oggetti. Tutti gli overload accessibili richiedono argomenti

Aggiornamento: novembre 2007

Property '<propertyname>' cannot be initialized in an object initializer expression because all accessible overloads require arguments

I membri inizializzati in un elenco dell'inizializzatore di oggetto devono essere campi o proprietà. Inoltre, le proprietà in un elenco di inizializzatori non possono avere parametri. La proprietà che genera questo errore viene sottoposta a overload e ognuna delle versioni richiede argomenti. Impossibile pertanto inizializzare la proprietà in un elenco dell'inizializzatore di oggetto.

ID errore: BC30993

Per correggere l'errore

  • Rimuovere la proprietà che richiede argomenti dall'elenco di inizializzatori.

Esempio

Nella classe seguente sono contenute tre definizioni della proprietà: uno per TotalItems e due per Item, che viene sottoposto a overload.

    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 proprietà TotalItems non richiede argomenti e può essere inizializzata in un elenco di inizializzazione dell'oggetto, come illustrato nella dichiarazione seguente.

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

La proprietà Item viene sottoposta a overload di e ogni overload richiede un argomento. Pertanto, Item non può essere presente in un elenco dell'inizializzatore di oggetto.

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

Per evitare questo errore, inizializzare la proprietà Item all'esterno dell'inizializzatore di oggetto.

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

Vedere anche

Attività

Procedura: chiamare una routine di proprietà

Concetti

Proprietà e routine delle proprietà

Inizializzatori di oggetto: tipi denominati e tipi anonimi

Proprietà predefinite

Overload della routine

Riferimenti

Overloads