WeakReference.Target Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur objek (target) yang dirujuk oleh objek saat ini 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
Nilai Properti
null jika objek yang direferensikan oleh objek saat ini WeakReference telah dikumpulkan sampah; jika tidak, referensi ke objek yang direferensikan oleh objek saat ini WeakReference .
Pengecualian
Referensi ke objek target tidak valid. Pengecualian ini dapat dilemparkan saat mengatur properti ini jika nilainya adalah referensi null atau jika objek telah diselesaikan selama operasi yang ditetapkan.
Contoh
Contoh berikut mencoba mendapatkan objek dari cache objek dengan referensi lemah. Jika objek direklamasi untuk pengumpulan sampah, objek baru dihasilkan. Contoh ini adalah bagian dari contoh yang lebih besar yang disediakan untuk WeakReference kelas .
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
Keterangan
Setelah mengatur properti ini ke objek target, pastikan bahwa tidak ada referensi kuat lainnya ke objek; jika tidak, itu tidak akan dikumpulkan.