WeakReference.Target Propiedad

Definición

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

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

Es null si se recolectan los elementos no utilizados del objeto al que hace referencia el objeto WeakReference actual; en caso contrario, es una referencia al objeto al que hace referencia el objeto WeakReference actual.

Excepciones

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

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