【发布时间】:2011-10-04 09:30:56
【问题描述】:
我有以下课程:
Public Class ID
Private sID as List(Of Integer)
Public property IDlist as List(Of Integer)
Get
Return sID
End Get
Set(ByVal value as List(Of Integer)
sID = value
End Set
End Property
End Class
然后我会这样做:
Dim objID as ID
Dim myList as List(Of Integer)
for i = 0 to 1
objID = New ID
MyList.add(1)
Mylist.add(2)
ID.IDlist = mylist
mylist.clear
Next
如果我在 mylist.clear 之前插入代码以检索 ID.IDlist 属性之一,则它对两次迭代都有效。但是,如果我尝试在 for 循环之后检索值,我什么也得不到。
我发现这段代码允许我在 for 循环之后获取两个 ID 对象的 ID.IDlist:
Dim objID as ID
Dim myList as List(Of Integer)
for i = 0 to 1
objID = New ID
mylist = New List(Of Integer)
MyList.add(1)
Mylist.add(2)
ID.IDlist = mylist
Next
我可能会离开这里,但似乎 ID.IDlist 指向 mylist 的地址,因此当 mylist 被清除时,ID.Idlist 也是如此。似乎第二个代码块起作用的原因是因为我在内存中为每个 ID 对象创建了一个新列表,而 ID.IDlist 只是指向它......对吗?
谁能确认/解释一下?我在这种情况下花了大约 5 个小时.. ugh
谢谢你的解释!
【问题讨论】:
-
你的假设是正确的。
标签: vb.net class properties generic-list