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 (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á.