A propriedade '<propertyname>' não pode ser inicializada em uma expressão de inicializador de objeto porque requer argumentos

Os membros inicializados em uma lista de inicializadores de objeto devem ser campos ou propriedades e os membros da propriedade não podem ter parâmetros. Por exemplo, as propriedades padrão exigem argumentos, portanto, não podem ser inicializadas em uma lista de inicializadores de objeto. Para obter mais informações, consulte .

ID do Erro: BC30992

Para corrigir este erro

  • Remova da lista de inicialização todas as propriedades que tenham argumentos.

Exemplo

A classe a seguir contém uma propriedade padrão, defaultProp, que requer um argumento inteiro.

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  

Como a propriedade padrão requer um argumento, a declaração a seguir causa um erro.

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

Confira também