WeakReference.Target Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit l’objet (la cible) référencé par l’objet WeakReference actuel.
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
Valeur de propriété
null
si l’objet référencé par l’objet WeakReference actuel a été récupéré par le garbage collector ; sinon, référence à l’objet référencé par l’objet WeakReference actuel.
Exceptions
La référence à l’objet cible n’est pas valide. Cette exception peut être levée lors de la définition de cette propriété si la valeur est une référence null ou si l’objet a été finalisé pendant l’opération de définition.
Exemples
L’exemple suivant tente d’obtenir un objet à partir d’un cache d’objets avec des références faibles. Si l’objet a été récupéré pour le garbage collection, un nouvel objet est généré. Cet exemple fait partie d’un exemple plus grand fourni pour la 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;
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
Remarques
Après avoir défini cette propriété sur l’objet cible, assurez-vous qu’il n’existe aucune autre référence forte à l’objet ; sinon, elle ne sera pas collectée.