WeakReference.Target Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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á.