Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: переменные Добавлено: 30.10.03 20:50  

Автор вопроса:   Артём Л. | ICQ: 280044491 

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 - создается две разные переменные?

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 Воронков Василий



Вопросов: 1
Ответов: 90
 Профиль | | #1 Добавлено: 31.10.03 00:07

В дотнете ты _ничего_ и _никогда_ сам не удаляешь. Даже вызов Dispose - это просто освобождение ресурсов, используемых экземпляром, но никак не его удаление. В твоем примере ты просто обнуляешь ссылку на объект - и все.

Ответить

Номер ответа: 2
Автор ответа:
 SAVok



ICQ: 155153916 

Вопросов: 2
Ответов: 126
 Профиль | | #2 Добавлено: 31.10.03 08:19

Воронков Василий абсолютно прав!

Когда ты пишешь a1.B = Nothing. Ты всего лишь говоришь, что a1.B никуда не ссылается. Сам же объект продолжает существовать и будет уничтожен сборьщиком мусора только когда все ссылки на него будут удалены.

Ответить

Номер ответа: 3
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #3 Добавлено: 31.10.03 10:37
тепер все понятно, спасибо..

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам