C# · 12月 22, 2021

c# – 从一个实现INotifyPropertyChanged的基类继承

我一直在使用以下几个代码来完成几十个课程 public event PropertyChangedEventHandler PropertyChanged;protected void NotifyPropertyChanged(string propertyName){ if (PropertyChanged != null) { PropertyChanged(this,new PropertyChangedEventArgs(propertyName)); }}

所有这些类都实现了INotifyPropertyChanged.为了使我的DRY警报静音,最近我一直在重构这些类来继承我的基类PropertyNotifier,它的唯一目的是为从它继承的类提供NotifyPropertyChanged – 这是我庞大项目中的几十个viewmodel类.

它感觉很懒,有点脏.我是在损害性能还是破坏了良好的设计实践?我认为如果改变通知应该很容易,那么WPF框架中就会有一个基类来执行我的PropertyNotifier类所做的事情.

请注意,由于很多原因,我的UI响应性一直存在性能问题 – 主要是由于大量控件.所以我希望尽可能地减肥.有任何想法吗?

解决方法 这是WPF或Silverlight开发中非常常见的基类,不会显着影响性能.我将PropertyNotifier作为基类的唯一问题是限制为单一继承,但这对于您需要它的类类型来说往往是一个罕见的问题.