Поделиться через


Свойство <имяСвойства> не удалось инициализировать в выражении инициализатора объекта, поскольку оно требует аргументов

Обновлен: Ноябрь 2007

Property '<propertyname>' cannot be initialized in an object initializer expression because it requires arguments

Элементы, инициализированные в списке инициализаторов объекта, должны быть полями или свойствами, и у элементов свойства не может быть параметров. Например, для свойств по умолчанию требуются аргументы, поэтому они не могут быть инициализированы в списке инициализаторов объекта. Дополнительные сведения см. в разделе Свойства, используемые по умолчанию.

Идентификатор ошибки: BC30992

Чтобы исправить данную ошибку

  • Удалите из списка инициализации все свойства, имеющие аргументы.

Пример

В следующем классе содержится свойство, используемое по умолчанию (defaultProp), для которого требуется целочисленный аргумент.

    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

Поскольку для свойств по умолчанию требуется аргумент, следующее объявление вызывает ошибку.

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

См. также

Основные понятия

Свойства, используемые по умолчанию

Свойства и процедуры свойств

Инициализаторы объектов: именованные и анонимные типы