У меня есть следующий класс:
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
Если я вставлю код для извлечения одного из свойств ID.IDlist ДО mylist.clear, он отлично работает для обеих итераций. Однако, если я попытаюсь получить значения ПОСЛЕ цикла for, я ничего не получу.
Я обнаружил, что этот код позволяет мне получить ID.IDlist для обоих объектов ID после цикла for:
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 часов на эту ситуацию .. тьфу
спасибо за любые объяснения!