WeakReference.Target Propriété

Définition

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é

Object

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.

S’applique à

Voir aussi