プロパティ '<propertyname>' には引数が必要なため、オブジェクト初期化子式で初期化できません

更新 : 2007 年 11 月

オブジェクト初期化子リストで初期化されるメンバはフィールドまたはプロパティである必要があり、プロパティ メンバはパラメータを持つことはできません。たとえば、既定のプロパティは引数が必要なため、オブジェクト初期化子リストでは初期化できません。詳細については、「既定のプロパティ」を参照してください。

エラー ID: 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" }

参照

概念

既定のプロパティ

プロパティとプロパティ プロシージャ

オブジェクト初期化子 : 名前付きの型と匿名型