Прочитать на английском

Поделиться через


WeakReference.Target Свойство

Определение

Возвращает или задает (целевой) объект, на который ссылается текущий объект WeakReference.

public virtual object Target { get; set; }
public virtual object? Target { get; set; }

Значение свойства

Object

Значение null, если объект, на который ссылается текущий объект WeakReference, не был удален сборщиком мусора; в противном случае ссылка на объект, на который ссылается текущий объект WeakReference.

Исключения

Ссылка на целевой объект является недопустимой. Это исключение может быть создано при задании свойства, если значением является пустая ссылка или объект финализирован во время операции задания.

Примеры

В следующем примере выполняется попытка получить объект из кэша объектов со слабыми ссылками. Если объект был освобожден для сборки мусора, создается новый объект. Этот пример является частью более крупного примера, предоставленного WeakReference для класса.

Data d = _cache[index].Target as Data;
if (d == null) {
    // If the object was reclaimed, generate a new one.
    Console.WriteLine("Regenerate object at {0}: Yes", index);
    d = new Data(index);
    _cache[index].Target = d;
    regenCount++;
}
else {
    // Object was obtained with the weak reference.
    Console.WriteLine("Regenerate object at {0}: No", index);
}

return d;

Комментарии

После задания этого свойства целевому объекту убедитесь, что нет других надежных ссылок на объект; в противном случае он не будет собираться.

Применяется к

См. также раздел