WeakReference.Target Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.