Сначала не задан вопрос / ничего. Значение obj1 и obj2 до создания новых объектов равно Nothing
, но это не совсем то же самое, что и C # null
. VB.Net Nothing
является более близким аналогом концепции C # default(T)
. В этом случае все сводится к одному и тому же, но стоит знать различие, потому что null
и Nothing
ведут себя очень по-разному, когда вы работаете с типами значений.
Следующее, что здесь необходимо понять, это присвоение в строке 5. На этом этапе ссылка на переменную obj2 скопирована в переменную obj1. Это важно, потому что они больше не являются одной и той же ссылкой, а скорее двумя ссылками, которые указывают (ссылаются) на одно и то же место. Это достаточно легко понять в этом коде, но я видел, как он запутывает людей в более сложных местах ... скажем, одна из переменных назначена в методе.
И наконец, да, объект, на который изначально ссылалась переменная obj1, теперь может быть использован для сборки мусора. Вам больше не нужно об этом беспокоиться.