Циклические ссылки!!!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
MiGan
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 02.05.2005 (Пн) 13:27

Циклические ссылки!!!!

Сообщение MiGan » 27.10.2005 (Чт) 12:48

Е-мое!!!!! Вот сегодня я обнаружил, что моя прога была спроектирована НЕПРАВИЛЬНО! И виною тому пресловутые циклические ссылки.
Например, у нас есть коллекция CDocuments документов CDocument, которые содержат ссылку на эту коллекцию. При попытке удалить коллекцию (set mDocs = nothing) она естессно не удаляется, потому что на нее остаются ссылки в объектах CDocument, которые соответссно тоже не удаляются, потому что должны удаляться только при событии Terminate коллекции!!! О боже! Это похоже на кошмар. Я чего-то там слышал про к-то классы посредники, но я так и не понял, как они устроены. И что делать, если класс CDocument содержит в себе еще коллекцию CDocPictures, которая имеет ссылку на родительский класс и сама состоит из элементов CDocPicture, которые в свою очередь имеют ссылку на родительскую коллекцию!!!! ААА!!!!! ПА_МА_ГИИИИТЕ!!!! Почему в вазике нет простого delete для удаления объекта?Я идиот! Убейте меня, кто-нибудь!?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.10.2005 (Чт) 12:54

А если бы он был, что стало бы со всеми ссылками на объект, а также с тобой, когда бы ты попытался работать с такой ссылкой?

Определяй в объектах friend sub Dispose. Обнуляй в нём все внутренние ссылки. Вызывай перед удалением объекта. Каждого.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList