屬性 '<propertyname>' 不能在物件初始設定式運算式中初始化,因為所有可存取的多載必須有引數

更新:2007 年 11 月

在物件初始設定式中初始化的成員必須是欄位或屬性。此外,初始設定式清單中的屬性不能有參數。造成此錯誤的屬性具有多載,它的每個版本都需要引數。因此,屬性無法在物件初始設定式清單中加以初始化。

錯誤 ID:BC30993

若要更正這個錯誤

  • 從初始設定式清單中移除需要引數的屬性。

範例

下列類別 (Class) 包含 3 個屬性定義:一個是 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

請參閱

工作

HOW TO:呼叫屬性程序

概念

屬性和屬性程序

物件初始設定式:具名和匿名型別

預設屬性

程序多載化

參考

Overloads