WeakReference.Target Eigenschap

Definitie

Hiermee wordt het object (het doel) opgehaald of ingesteld waarnaar wordt verwezen door het huidige WeakReference object.

public:
 virtual property System::Object ^ Target { System::Object ^ get(); void set(System::Object ^ value); };
public virtual object Target { get; set; }
member this.Target : obj with get, set
Public Overridable Property Target As Object

Waarde van eigenschap

null als het object waarnaar wordt verwezen door het huidige WeakReference object is verzameld; anders wordt er een verwijzing naar het object waarnaar wordt verwezen door het huidige WeakReference object.

Uitzonderingen

De verwijzing naar het doelobject is ongeldig. Deze uitzondering kan worden gegenereerd tijdens het instellen van deze eigenschap als de waarde een null-verwijzing is of als het object is voltooid tijdens de setbewerking.

Voorbeelden

In het volgende voorbeeld wordt geprobeerd een object op te halen uit een cache met objecten met zwakke verwijzingen. Als het object is vrijgemaakt voor garbagecollection, wordt er een nieuw object gegenereerd. Dit voorbeeld maakt deel uit van een groter voorbeeld voor de WeakReference klasse.

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

Opmerkingen

Nadat u deze eigenschap hebt ingesteld op het doelobject, moet u ervoor zorgen dat er geen andere sterke verwijzingen naar het object zijn; anders wordt het niet verzameld.

Van toepassing op

Zie ook