EventHandler は初期化しないと null なので普通はこう書きます。
1: public event PropertyChangedEventHandler PropertyChanged;
2:
3: private void NotifyPropertyChanged(String info)
4: {
5: if (PropertyChanged != null)
6: {
7: PropertyChanged(this, new PropertyChangedEventArgs(info));
8: }
9: }
毎回 null チェックするのがなんとなくいやな感じです。
その場合は、
1: public event PropertyChangedEventHandler PropertyChanged = delegate { };
2:
3: private void NotifyPropertyChanged(String info)
4: {
5: PropertyChanged(this, new PropertyChangedEventArgs(info));
6: }
と書くことができます。
メリット:
- (メソッド内の)コードがシンプルになるので理解しやすい
- 宣言は1カ所だが、使用するのは1カ所とは限らないので、使用する部分がシンプルなほうがメリットが大きい
デメリット:
- イベントハンドラは null チェックするのが一般的になってしまっているので、多くの人がかかわるようなプロジェクトには不向きかもしれない
(空デリゲートの呼び出しと、null チェックの実行速度の比較は参考リンク1で行ってますが、気にするほどではないようです)
個人的には、コードが読みやすくなることが最優先なので、null チェックしない方法でいきたいと思います。
参考リンク