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

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

오류 ID: BC30993

이 오류를 해결하려면

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

예시

다음 클래스에는 TotalItems 에 대해 1개, Item(오버로드됨)에 대해 2개 등 총 3개의 속성 정의가 포함되어 있습니다.

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  

참고 항목