WeakReference.Target Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.