Страница: 1 |
Public Class ClassA Public B As ClassB End Class Public Class ClassB Public Sub Show() MsgBox(1) End Sub End Class ------------------------ Dim a1 As New ClassA() Dim a2 As New ClassA() Dim b As New ClassB() a1.B = b a2.B = b a1.B = Nothing a2.B.Show() в итоге будет сообщение "1" я почему то думал, что a2.B.Show() приведет к ошибке типа Object is nothing, ведь a1.B и a2.B дожны указывать на одну переменную, которую строчкой a1.B = Nothing я убиваю. Почему это не так? может я чего то недопонимаю, или a1.B = b a2.B = b - создается две разные переменные?
В дотнете ты _ничего_ и _никогда_ сам не удаляешь. Даже вызов Dispose - это просто освобождение ресурсов, используемых экземпляром, но никак не его удаление. В твоем примере ты просто обнуляешь ссылку на объект - и все. Воронков Василий абсолютно прав! Когда ты пишешь a1.B = Nothing. Ты всего лишь говоришь, что a1.B никуда не ссылается. Сам же объект продолжает существовать и будет уничтожен сборьщиком мусора только когда все ссылки на него будут удалены. Страница: 1 |
Вопрос: переменные
Добавлено: 30.10.03 20:50
Автор вопроса: Артём Л. | ICQ: 280044491
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Воронков Василий
Вопросов: 1
Ответов: 90
Профиль | | #1
Добавлено: 31.10.03 00:07
Номер ответа: 2
Автор ответа:
SAVok
ICQ: 155153916
Вопросов: 2
Ответов: 126
Профиль | | #2
Добавлено: 31.10.03 08:19
Номер ответа: 3
Автор ответа:
Артём Л.
ICQ: 280044491
Вопросов: 43
Ответов: 227
Профиль | | #3
Добавлено: 31.10.03 10:37
тепер все понятно, спасибо..