다음을 통해 공유


액세스 가능한 모든 오버로드에 인수가 필요하므로 개체 이니셜라이저 식에서 '<propertyname>' 속성을 초기화할 수 없습니다.

업데이트: 2007년 11월

Property '<propertyname>' cannot be initialized in an object initializer expression because all accessible overloads require arguments

개체 이니셜라이저 목록에 초기화된 멤버는 필드 또는 속성이어야 합니다. 또한 이니셜라이저 목록에 있는 속성에는 매개 변수가 포함될 수 없습니다. 이 오류를 발생시키는 속성은 오버로드되며 해당 속성의 각 버전에는 인수가 필요합니다. 따라서 속성은 개체 이니셜라이저 목록에서 초기화할 수 없습니다.

오류 ID: BC30993

이 오류를 해결하려면

  • 인수를 필요로 하는 속성을 이니셜라이저 목록에서 제거합니다.

예제

다음 클래스에는 세 개의 속성 정의가 포함되어 있는데 한 개는 TotalItems에 대한 속성 정의이며 다른 두 개는 오버로드된 Item에 대한 속성 정의입니다.

    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

TotalItems 속성에는 인수가 필요 없기 때문에 다음 선언에서와 같이 개체 이니셜라이저 목록에서 초기화할 수 있습니다.

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

Item 속성은 오버로드되며 각 오버로드에는 인수가 필요합니다. 따라서 Item은 개체 이니셜라이저 목록에 나타날 수 없습니다.

' The following declaration is not valid.
' Dim coinCollection As New CollectionOfItems With { .TotalItems = 0, _
'    .Item = aCoinObject }

이 오류를 방지하려면 개체 이니셜라이저 외부에서 Item 속성을 초기화합니다.

Dim coinCollection As New CollectionOfItems With { .TotalItems = 0 }
coinCollection.Item(1) = aCoinObject

참고 항목

작업

방법: 속성 프로시저 호출

개념

속성 및 속성 프로시저

개체 이니셜라이저: 명명된 형식과 익명 형식

기본 속성

프로시저 오버로딩

참조

Overloads