No se puede inicializar la propiedad "<propertyname>" en una expresión de inicializador de objeto porque requiere argumentos

Los miembros inicializados de la lista de inicializadores de objeto deben ser campos o propiedades y los miembros de la propiedad no pueden tener parámetros. Por ejemplo, las propiedades predeterminadas requieren argumentos, por lo que no se pueden inicializar en una lista de inicializadores de objeto. Para obtener más información, consulte el elemento .

Identificador de error: BC30992

Para corregir este error

  • Quite de la lista de inicialización todas las propiedades que tienen argumentos.

Ejemplo

La clase siguiente contiene una propiedad predeterminada, defaultProp, que requiere un argumento entero.

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  

Dado que la propiedad predeterminada requiere un argumento, la siguiente declaración genera un error.

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

Consulte también