Я пишу программное обеспечение на Silverlight с C #.
Я знаю, что GC.Collect будет собирать объекты и элементы управления, если на них нет ссылок, но я не уверен, что имеется в виду под ссылками.
Я знаю, что в Silverlight мне нужно удалить элемент управления (скажем, «Control A») из макета, удалить весь обработчик событий, а затем установить для объекта значение null, чтобы он не ссылался на объект. Что-то вроде:
1) если «Элемент управления A» содержит другие элементы управления: «Элемент управления B», «Элемент управления C», и они могут где-то иметь подписанный обработчик событий.
Будет ли "Control A" по-прежнему собираться GC.Collect ()? А как насчет "Control B" "Control C"?
Должен ли я на самом деле удалить все, что "Control B" и "Control C", которые содержат, и удалить "Control B" "Control C" из "Control A", чтобы позволить им собраться?
2) Скажите, что если есть «Control D», то есть ComboBox, и ComboBox имеет много ComboxBoxItem.
Должен ли я удалить () все ComboxBoxItem, чтобы эти ComboxBoxItem были собраны?
Или когда я удаляю ComboBox из «Control D», тоже выну ComboxBoxItem?
Я немного запутался с Delete в C ++, поскольку в C ++ я могу просто удалить весь объект со всем, что в нем содержится ...