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 das aktuelle WeakReference-Objekt verweist, oder legt dieses 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 das aktuelle WeakReference-Objekt verweist, an den Garbage Collector übergeben wurde, andernfalls ein Verweis auf das Objekt, auf das das aktuelle WeakReference-Objekt verweist.
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 wenn das Objekt während des Set-Vorgangs 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 freigegeben 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.