Özel bir sözlüğüm var. Tam olarak bunu nasıl emin değilim ama olsun yöntemi sanal yapma arıyorum ama set yöntemi:C# Dizin oluşturucu özellikleri - Set yöntemini değil, sanallaştırmanın herhangi bir yolu var mı?
public TValue this[TKey key]
{
get { ... }
set { ... }
}
yüzden doğru kombinasyon buysa bu mümkün ve var mı?
protected virtual TValue GetValue(TKey key) { ...}
public TValue this[TKey key]
{
get { return GetValue(key); }
set { ... }
}
sen ne elde etmek istiyoruz sadece sanal 'getiri' yapmak? Bunu yapmanın daha iyi bir yolu olabilir. –
Sadece "ReadOnlyDictionary" öğemi genişletmeyi denemeye çalışıyorum. Salt okunur bir sözlük olduğu için, set yöntemini desteklemiyorum (bir istisna atar), ancak bir extending sınıfı get metodundan ek iş yapmak isteyebilir, bu yüzden bunları geçersiz kılabilir ve modifiye edebilirler. –
"Sanallaştır" yöntemini sanal yapmaya çalışmamalısınız, bunun yerine bazı sanal "OnGetCalled" yöntemine sahip olmalısınız ve türetilmiş sınıfın geçersiz kılınmasına izin verin. Türetilmiş sınıf, Base sürümünü çağırmadan "get" (yani Mark'ın önerisi) geçersiz kılmayacaktır, bu nedenle ayrı bir yöntem sözleşmeyi açık hale getirecektir. –