Если кто-то не интересуется целью слабой ссылки, а просто хочет выяснить, умерла ли она, лучше проверить, стало ли свойство IsAlive
false
, чем проверить, является ли Target
собственность стала null
. Хотя это может не решить все проблемы с отладочными сборками, сохраняя объекты живыми дольше, чем ожидалось, это позволит избежать некоторых других проблем, которые могут возникнуть, особенно при использовании одновременной сборки мусора. Цель WeakReference
не может быть собрана, пока существует какая-либо сильная ссылка, и, таким образом, получение Target
из WeakReference
по крайней мере временно защитит данный объект от сбора. Это может быть неизбежным в некоторых случаях, когда код на самом деле хочет что-то сделать с рассматриваемой ссылкой, но нет никаких причин рисковать продлением жизни объекта, если кто-то просто пытается выяснить, когда он умирает.