簡體   English   中英

如何在 VB.NET 中為列表屬性執行對象初始值設定項

[英]How to perform object initializer for a list property in VB.NET

我正在嘗試實現對象初始值設定項。 所有的類都已經由其他人創建了。 我無法改變。

我有一個類Ins.vb ,它有一個列表作為屬性

Partial Public Class Ins
  Private itemField As Item1
  Private sizeCodeListField() As SizeCode  'This is the property

  Public Property Item() As Item1
    Get
      Return Me.itemField
    End Get
    Set
      Me.itemField = value
    End Set
  End Property

  Public Property SizeCodeList() As SizeCode()
    Get
      Return Me.sizeCodeListField
    End Get
    Set
      Me.sizeCodeListField = value
    End Set
  End Property
End Class

Item1.vb

Public Partial Class Item1
  Private codeField As String
  
  Public Property Code() As String
    Get
      Return Me.codeField
    End Get
    Set
      Me.codeField = value
    End Set
  End Property
End Class

SizeCode.vb

Partial Public Class SizeCode
  Private sizeCode1Field As String
  Private sizeCodeDescriptionField As String

  Public Property SizeCode1() As String
    Get
      Return Me.sizeCode1Field
    End Get
    Set
      Me.sizeCode1Field = value
    End Set
  End Property
  Public Property SizeCodeDescription() As String
    Get
      Return Me.sizeCodeDescriptionField
    End Get
    Set
      Me.sizeCodeDescriptionField = value
    End Set
  End Property
End Class

這就是我嘗試進行對象初始化的方式

Dim myVar = New Ins _
  With {.Item = New Item1 With {.Code = "I"},
        .SizeCodeList = New SizeCode With {.SizeCode1 = "S", .SizeCodeDescription = "Description"}}  'I am getting an error here

錯誤是Value of type 'SizeCode' cannot be converted to 'SizeCode()'

我不知道如何實現這一點,我被卡住了。

你的語法應該是這樣的:

            Dim myVar = New Ins _
  With {.Item = New Item1 With {.Code = "I"},
        .SizeCodeList = New SizeCode() {New SizeCode With {.SizeCode1 = "S", .SizeCodeDescription = "Description"}}}  

您正在將 .SizeCodelist 初始化為 SizeCode,但它應該是一個列表。 我沒有測試它,但我認為這應該有效:

 Dim myVar = New Ins With
{.Item = New Item1 With {.Code = "I"},
 .SizeCodeList = New List(Of SizeCode)}

Dim newSizeCode As New SizeCode With {.SizeCode1 = "S", .SizeCodeDescription = "Description"}

myvar.SizeCodeList.add(newSizeCode)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM