Stackoverflowから、アプリケーションからマジックストリングを削除するための便利なコードをいくつかピックアップしました。コードは次のようになります。
protected void OnPropertyChanged<T>(Expression<Func<T>> selectorExpression) { }
メソッドは次のように呼び出されます。
this.OnPropertyChanged( () => DisplayName);
DisplayName
(クラスのプロパティはどこにありますか。)
この形式のメソッドを使用することは非常に便利ですが(リファクタリングが簡単な方法が好きです)、何が行われているのかよくわかりません。
どこにT
割り当てられ、どのような価値がありますか?インテリセンスは、クラスが持つプロパティをどのように取得しますか(T
メソッドが呼び出されるコンテキストから暗黙的に設定されますか?)
式は() => DisplayName
コンパイル時に固定されますか、それともメソッドが呼び出されるたびに計算されますか?関連:マジックストリングの使用はより効率的ですか?