无法在对象初始值设定项表达式中初始化属性“<propertyname>”,因为所有可访问的重载都需要参数

更新:2007 年 11 月

在对象初始值设定项列表中初始化的成员必须是字段或属性。此外,初始值设定项列表中的属性不能具有参数。导致此错误的属性进行了重载,它的每个重载版本都需要参数。因此,不能在对象初始值设定项列表中初始化该属性。

**错误 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