WeakReference.Target Properti

Definisi

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.

Berlaku untuk

Lihat juga