Сборка мусора объекта, который зарегистрирован на событие

У меня есть объект просмотра, который инициализирует другой объект, объект creditCard, и регистрируется на событие, которое вызывает creditCard. Если вид объекта не будет иметь ссылки на него. Это будет мусор? или я должен отписаться, чтобы это произошло?

2 ответа

Вам нужно будет отменить подписку на объект, подлежащий сборке мусора.

"Причина проста для объяснения: в то время как обработчик событий подписан, издатель события содержит ссылку на подписчика через делегат обработчика событий (при условии, что делегат является методом экземпляра)". - /questions/38950234/pochemu-i-kak-izbezhat-utechek-pamyati-v-obrabotchike-sobyitij/38950252#38950252

Когда ваш creditCard объект подписывается на событие ti будет ссылаться на ваш объект просмотра. Например creditCard.Event += MyEvent... и это эквивалентно creditCard.Event += this.MyEvent... где this будет ссылаться наview объект, поэтому вы должны отказаться от подписки, чтобы быть сборщиком мусора.

Другие вопросы по тегам