WeakReference.Target Özellik

Tanım

Geçerli WeakReference nesne tarafından başvuruda bulunan nesneyi (hedef) alır veya ayarlar.

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

Özellik Değeri

null Geçerli WeakReference nesne tarafından başvuruda bulunan nesne çöp olarak toplanmışsa; aksi takdirde, geçerli WeakReference nesne tarafından başvuruda bulunan nesneye bir başvuru.

Özel durumlar

Hedef nesneye başvuru geçersiz. Değer null başvuruysa veya nesne ayarlama işlemi sırasında sonlandırıldıysa, bu özellik ayarlanırken bu özel durum oluşturulabilir.

Örnekler

Aşağıdaki örnek, zayıf başvurulara sahip nesnelerin önbelleğinden bir nesne elde etmeye çalışır. Nesne çöp toplama için geri kazanıldıysa, yeni bir nesne oluşturulur. Bu örnek, sınıfı için WeakReference sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

Bu özelliği hedef nesneye ayarladıktan sonra nesneye başka güçlü başvurular olmadığından emin olun; aksi takdirde toplanmaz.

Şunlara uygulanır

Ayrıca bkz.