【发布时间】:2015-04-12 08:53:44
【问题描述】:
我在使用类属性中的列表时遇到问题。 这是我的班级:
Public Class SourceData
Private _datafiles As New List(Of String)
Public Property datafiles() As List(Of String)
Get
Return _datafiles
End Get
Set(value As List(Of String))
_datafiles = value
End Set
End Property
End Class
到目前为止,一切都很好。现在我想在我的程序中使用它:
Public filename_data As New List(Of SourceData)
Private Sub loadData()
Dim currentSourceData As New SourceData
currentSourceData.datafiles.Add("A")
currentSourceData.datafiles.Add("B")
currentSourceData.datafiles.Add("C")
MsgBox(currentSourceData.datafiles.Count) 'Returns 3
filename_data.Add(currentSourceData)
MsgBox(filename_data(0).datafiles.Count) 'Returns 0
end sub
第一个消息框将返回正确的数据文件条目数:3 但是,第二个消息框将返回 0。不知何故,数据文件列表在途中丢失了?无论我如何尝试,我都找不到解决问题的方法。
【问题讨论】:
-
有些东西不在这里——你遗漏了一些东西,因为你不能在一个方法中拥有
Public filename_data As New List(Of SourceData)。你能显示所有你的代码吗? -
另外,我已经运行了你的代码,两次都是“3”。
-
这里相同 - 您确定您的实际代码中的“MsgBox(filename_data(0).datafiles.Count)”语句在您添加数据之后发生 A','B',&'C'?
-
filename_data.Count 返回什么?您确定索引 0 是您刚刚添加的项目吗?也许你应该做 MessageBox.Show(filename_data(filename_data.Count-1).datafiles.Count)
-
这里没有错。其他事情正在发生。
标签: vb.net list class properties