WeakReference.Target Propriedade

Definição

Obtém ou define o objeto (o destino) referenciado pelo objeto WeakReference atual.

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

Valor da propriedade

Object

null se o objeto referenciado pelo objeto WeakReference atual passou pela coleta de lixo; caso contrário, uma referência ao objeto referenciado pelo objeto WeakReference atual.

Exceções

A referência ao objeto de destino é inválida. Essa exceção pode ser gerada ao configurar essa propriedade se o valor for uma referência nula ou se o objeto tiver sido finalizado durante a operação de conjuntos.

Exemplos

O exemplo a seguir tenta obter um objeto de um cache de objetos com referências fracas. Se o objeto foi recuperado para coleta de lixo, um novo objeto será gerado. Este exemplo faz parte de um exemplo maior fornecido para a WeakReference classe.

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;

Comentários

Depois de definir essa propriedade para o objeto de destino, verifique se não há outras referências fortes ao objeto; caso contrário, ele não será coletado.

Aplica-se a

Confira também