Partilhar via


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

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

ID de erro: BC30992

Para corrigir este erro

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

Exemplo

A seguinte classe contém uma propriedade padrão, defaultProp, que requer um argumento Integer.

    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 seguinte declaração causa um erro.

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

Consulte também

Conceitos

Propriedades Padrão

Propriedades e Procedimentos de Propriedades

Inicializadores de objeto: Tipos nomeados e anônimo