Сборка мусора на объектах, не назначенных переменной - PullRequest
1 голос
/ 12 января 2011

Я работаю над проектом, который использует этот шаблон

var businessEntity = new DAL().GetObject(id);
// do something with the business entity.

Кто-нибудь следовал этому шаблону?

Это вызывает проблемы с управлением памятью? Какие-нибудь сложности с сборщиком мусора?

Спасибо

Ответы [ 4 ]

2 голосов
/ 12 января 2011

Работает просто отлично.Будет наряжена, собрана просто отлично.В зависимости от реализации и объекта, либо в конце строки он будет помечен для сбора, либо когда businessEntity выйдет из области видимости.

1 голос
/ 12 января 2011

Это очень типичный код, и нет, он не вызывает проблем с сборщиком мусора.

Ссылка на безымянный объект находится в стеке виртуальных машин (в противном случае метод не может быть вызван), который находится в корневом наборе GC.

0 голосов
/ 12 января 2011

Этот объект будет работать, пока на него ссылается businessEntry, и будет собран через некоторое время после того, как переменная выйдет из области действия

0 голосов
/ 12 января 2011

Нет, GC в конечном итоге очистит объект DAL, если с ним больше ничего не нужно делать или ничто не указывает на него.У вас есть ссылка на объект businessEntity, поэтому ГХ не будет касаться его, пока ссылка не станет недействительной.

...