Jedynym celem nieruchomości "IsAlive" jest sytuacja, w której chcesz podjąć pewne działanie, jeśli cel osłabionej referencji został już zniszczony, ale w którym nie chcesz ryzykować przypadkowego utrzymania go przy życiu dłużej niż to konieczne . Jeśli ktoś powie, np.
if (someWeakReference.Target == null)
cleanup_related_object();
i śmieci kolektor miał (z jakiegokolwiek powodu) spust tuż po kodzie, który oceniał someWeakReference.Target, GC nie zauważy, że istnieje wyraźne odniesienie do tego obiektu i wyklucza jego kolekcję. Z drugiej strony, mówiąc:
if (!someWeakReference.IsAlive)
cleanup_related_object();
nie byłoby ryzyko przypadkowego przedłużając żywotność cel someWeakReference kierować