MVVMを使用すると、プロパティに対して次の両方の方法が常に表示されます。
private int myProperty;
public int MyProperty
{
get { return myProperty; }
set
{
myProperty = value;
NotifyPropertyChanged("MyProperty");
}
}
と
private int myProperty;
public int MyProperty
{
get { return myProperty; }
set
{
myProperty = value;
NotifyPropertyChanged(m => m.MyProperty);
}
}
1つ目はハードコードされた文字列を使用してNotifyPropertyChangedを使用し、2つ目はラムダ式を使用してNotifyPropertyChangedを使用します。どちらがより良い解決策であるかを尋ねる議論をしたくはありませんが、これら2つの解決策の違いは何であるかを理解したいと思います。どちらか一方を使用するとどうなりますか?
私が間違っている場合は訂正してください。ただし、基本クラスのNotifyPropertyChangedメソッドはデリゲートとリフレクションを使用するため、ラムダ式ソリューションはより多くのメモリを使用し、ハードコードされた文字列よりも低速である必要があります。しかし、ハードコードされた文字列ソリューションは、文字列であり、正しく記述したことを私に伝えるものがないため、ばかげたバグを作成する可能性があります。