"Yeni 'ifadeyle oluşturulmuş atanmamış atanmış nesneler" ile ilgili sık sık bazı yeniden başlatıcı uyarılar alıyorum. Takip eden kod aşağıdaki durumu gösterecektir:Tasarım - Atanmamış nesneleri önlemek için desen
Bazı özellikleri başka bir sınıftan (MonitoredClass.cs
) izleyen bir yardımcı sınıf (Observer.cs
) kullanıyorum. Bir özellik değiştiğinde, gözlemci sınıfı değiştirilen değeri başka bir veri sınıfına yazar (DataClass.cs
). snipped
basitleştirilmiş kodu:
MonitoredClass.cs:
public class MonitoredClass : INotifyPropertyChanged
{
// simplified: in fact property calls OnPropertyChange(..)
public string Property1 { get; set; }
}
DataClass.cs:
public class DataClass
{
public string LastProperty1Value { get; set; }
}
Observer.cs: Şimdiye kadar
public class Observer
{
private MonitoredClass _monitoredClass;
private DataClass _dataClass;
public Observer(MonitoredClass monitoredClass, DataClass dataClass)
{
_monitoredClass = monitoredClass;
_dataClass = dataClass;
_monitoredClass.PropertyChanged+=MonitoredClassPropertyChanged;
}
private void MonitoredClassPropertyChanged(..)
{
_dataClass.LastProperty1Value = _monitoredClass.Property1;
}
}
çok iyi.
benim Gözlemci sınıfı aşağıdaki gibi yukarıdan şimdi kullanıyorsanız:
...
new Observer(monitoredClassInstance, dataClassInstance);
...
Bir resharper uyarı almak daha " 'yeni' ifadesi yarattığı olası atanmamış nesne". Bu gözlemciyi tasarlamak için daha iyi bir çözüm/model varsa, şimdi sorum şu:. Kabadan, yeni gözlemci örneğini özel bir alana ayırabilirim. Ama hiç kullanılmayan bir alanım var. Veya monitöredClassInstance ve dataClassInstance özelliklerini, yapıcıda iletmek yerine özelliklerini ayarlayabilirim. Ancak bu sadece uyarıyı engeller, fakat aslında mimariyi değiştirmez. vb tavsiye, görüş, desen için şimdiden
Teşekkür
"Yeni Gözlemci (mci, dci)" bir değişkene mi atanıyorsunuz? –
Çöp toplayıcısını newley örneklenmiş 'Observer'ı toplamadan ne engeller? – Jodrell
var a = yeni Gözlemci (monitoredClassInstance, dataClassInstance); – phnkha