Получает ли объект, извлеченный из списка, копию этого объекта или ссылку на него? - PullRequest
0 голосов
/ 01 февраля 2012

В VB.net, когда я получаю значение из списка, я получаю копию этого значения или ссылку на него?

dim blah as someObject
dim listOfBlahs as list(of someObject)
listOfBlah.add(new someObject(1))

blah = listOfBlah(0)
blah.setValue = 500

Обновляется ли значение listOfBlah (0) до500

Ответы [ 2 ]

2 голосов
/ 01 февраля 2012

бла будет указывать на ту же ячейку памяти, что и listOfBlah (0). Установка свойства для объекта в этом месте повлияет на объект в памяти в этом месте. Если позже вы установите blah = someOtherObject, то объект в ячейке памяти для listOfBlah (0) не будет затронут, потому что фактически вы указываете бла на другой объект.

Обычно это так, но для более глубокого обсуждения вы должны взглянуть на документацию Microsoft по типам значений и ссылочным типам: http://msdn.microsoft.com/en-us/library/aa711899(v=vs.71).aspx

0 голосов
/ 01 февраля 2012

Да, значение listOfBlah (0) обновляется как 500. Объекты имеют ссылочный тип.В вашем коде

бла указывает на объект listOfBlah (0).Какое бы значение не было изменено на бла , оно обновляется до listOfBlah (0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...