私はいくつかのクラスを書いていますが、INotifyPropertyChangedを実装することで、それらすべてを「データバインディングに準拠」(WPF、またはおそらくよりまれなWinFormsの場合)にしたいです。
問題は繰り返されるコードです。私は実際に同じ方法を何度もコピーアンドペーストします(冗談ではありません)。
protected void OnPropertyChanged([CallerMemberName] String propertyName = null)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
私はしばらくの間この問題を抱えていましたが、今日は特にそれが何度も何度も発生し続けているので、あなたが解決策を手伝ってくれることを願っています。このメソッドを持つクラスはほぼ12ありますが、そのコードを繰り返すのは本当に嫌です。
私はそれを実装する基本クラスを作成することを考えました(NotifyPropertyChangedObject
おそらく名前のために)が、それはおそらく多重継承なしで私のクラスを本当に制限する悪い考えです。
拡張メソッドも考えましたが、スコープをメソッドとしてスコープしたいprotected
ので、どちらも機能しません。
この問題を解決するために何ができるでしょうか?