Impossibile inizializzare la proprietà '<propertyname>' in un'espressione dell'inizializzatore di oggetti perché tutti gli overload accessibili richiedono argomenti

I membri inizializzati in un elenco di inizializzatori di oggetto devono essere campi o proprietà. Inoltre, le proprietà in un elenco di inizializzatori non possono avere parametri. La proprietà che causa l'errore è in overload e ognuna delle versioni richiede argomenti. Di conseguenza, non è possibile inizializzare la proprietà in un elenco di inizializzatori di oggetto.

ID errore: BC30993

Per correggere l'errore

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

Esempio

La classe seguente contiene le definizioni di tre proprietà: una per TotalItems e due per Item, che viene sottoposta 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 di oggetti, come illustrato nella seguente dichiarazione.

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

La proprietà Item è in overload e ogni overload richiede un argomento. Di conseguenza, Item non può trovarsi in un elenco di inizializzatori 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  

Vedi anche