WeakReference.Target Eigenschaft

Definition

Ruft das Objekt (das Ziel) ab, auf das vom aktuellen WeakReference Objekt verwiesen wird, oder legt es fest.

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

Eigenschaftswert

null wenn das objekt, auf das vom aktuellen WeakReference Objekt verwiesen wird, garbage collection wurde; andernfalls ein Verweis auf das Objekt, auf das vom aktuellen WeakReference Objekt verwiesen wird.

Ausnahmen

Der Verweis auf das Zielobjekt ist ungültig. Diese Ausnahme kann beim Festlegen dieser Eigenschaft ausgelöst werden, wenn der Wert ein Nullverweis ist oder das Objekt während des Setvorgangs abgeschlossen wurde.

Beispiele

Im folgenden Beispiel wird versucht, ein Objekt aus einem Cache von Objekten mit schwachen Verweisen abzurufen. Wenn das Objekt für die Garbage Collection erneut beansprucht wurde, wird ein neues Objekt generiert. Dieses Beispiel ist Teil eines größeren Beispiels, das für die WeakReference Klasse bereitgestellt wird.

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

Hinweise

Stellen Sie nach dem Festlegen dieser Eigenschaft auf das Zielobjekt sicher, dass keine anderen starken Verweise auf das Objekt vorhanden sind. andernfalls wird sie nicht gesammelt.

Gilt für:

Weitere Informationen