WeakReference.Target Propiedad

Definición

Obtiene o establece el objeto (el destino) al que hace referencia el objeto actual WeakReference .

public:
 virtual property System::Object ^ Target { System::Object ^ get(); void set(System::Object ^ value); };
public virtual object Target { get; set; }
public virtual object? Target { get; set; }
member this.Target : obj with get, set
Public Overridable Property Target As Object

Valor de propiedad

null si se ha recopilado el objeto al que hace referencia el objeto actual WeakReference ; de lo contrario, se ha recopilado una referencia al objeto al que hace referencia el objeto actual WeakReference .

Excepciones

La referencia al objeto de destino no es válida. Esta excepción se puede producir al establecer esta propiedad si el valor es una referencia nula o si el objeto se ha finalizado durante la operación de establecimiento.

Ejemplos

En el ejemplo siguiente se intenta obtener un objeto de una memoria caché de objetos con referencias débiles. Si el objeto se recuperó para la recolección de elementos no utilizados, se genera un nuevo objeto. Este ejemplo forma parte de un ejemplo más grande proporcionado para la WeakReference clase .

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;
match _cache[index].Target with
| :? Data as d->
    // Object was obtained with the weak reference.
    printfn $"Regenerate object at {index}: No"
    d
| _ ->
    // If the object was reclaimed, generate a new one.
    printfn $"Regenerate object at {index}: Yes"
    let d = Data index
    _cache[index].Target <- d
    regenCount <- regenCount + 1
    d
 Dim d As Data = TryCast(_cache(index).Target, Data)
 ' If the object was reclaimed, generate a new one.
 If d Is Nothing Then 
     Console.WriteLine("Regenerate object at {0}: Yes", index)
     d = New Data(index)
     _cache(index).Target = d
     regenCount += 1
Else 
     ' Object was obtained with the weak reference.
     Console.WriteLine("Regenerate object at {0}: No", index.ToString())
 End If 
 Return d

Comentarios

Después de establecer esta propiedad en el objeto de destino, asegúrese de que no haya otras referencias seguras al objeto; de lo contrario, no se recopilará.

Se aplica a

Consulte también