WeakReference.Target Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta l'oggetto (destinazione) a cui fa riferimento l'oggetto corrente WeakReference .
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
Valore della proprietà
null se l'oggetto a cui fa riferimento l'oggetto corrente WeakReference è stato sottoposto a Garbage Collection; in caso contrario, un riferimento all'oggetto a cui fa riferimento l'oggetto corrente WeakReference .
Eccezioni
Il riferimento all'oggetto di destinazione non è valido. Questa eccezione può essere generata durante l'impostazione di questa proprietà se il valore è un riferimento Null o se l'oggetto è stato finalizzato durante l'operazione di impostazione.
Esempio
Nell'esempio seguente viene eseguito un tentativo di ottenere un oggetto da una cache di oggetti con riferimenti deboli. Se l'oggetto è stato recuperato per l'operazione di Garbage Collection, viene generato un nuovo oggetto . Questo esempio fa parte di un esempio più ampio fornito per la WeakReference classe .
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
Commenti
Dopo aver impostato questa proprietà sull'oggetto di destinazione, assicurarsi che non siano presenti altri riferimenti sicuri all'oggetto; in caso contrario, non verrà raccolto.