在我的 UI 代码中,我有很多具有相同基本框架的类:
- 派生自 INotifyPropertyChanged
包含以下代码:
void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } public event PropertyChangedEventHandler PropertyChanged;
这似乎是将一个类作为因素并从该类派生而不是 INotifyPropertyChanged 的绝好机会,但遗憾的是 C# 不支持多重继承,因此它不会真正发挥作用。关于如何重构此类代码的任何想法?
最佳答案
你不能把这段代码放到你父类(super class)的父类(super class)中吗?
- 对象
- 您的具体 NotifyPropertyChanged 类 <-- 在此处插入
- 无论您的 View 模型继承自什么(并阻止您使用多重继承
- 你的具体 View 模型
- 另一个具体的 View 模型
- 无论您的 View 模型继承自什么(并阻止您使用多重继承
- 您的具体 NotifyPropertyChanged 类 <-- 在此处插入
大多数 MVVM 框架都为您提供了这样一个类。
不幸的是,由于围绕事件的访问规则,您不能在没有反射的情况下将其分解为扩展方法。
关于c# - 重构 PropertyChangedEventHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183707/