WeakReference.Target Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger objektet (målet) som refereras av det aktuella WeakReference objektet.
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
Egenskapsvärde
null om objektet som refereras av det aktuella WeakReference objektet har skräp samlats in, annars en referens till objektet som refereras av det aktuella WeakReference objektet.
Undantag
Referensen till målobjektet är ogiltig. Det här undantaget kan genereras när du anger den här egenskapen om värdet är en null-referens eller om objektet har slutförts under den angivna åtgärden.
Exempel
I följande exempel försöker du hämta ett objekt från en cache med objekt med svaga referenser. Om objektet har återtagits för skräpinsamling genereras ett nytt objekt. Det här exemplet är en del av ett större exempel som tillhandahålls WeakReference för klassen.
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
Kommentarer
När du har ställt in den här egenskapen på målobjektet kontrollerar du att det inte finns några andra starka referenser till objektet. annars samlas den inte in.