私は自分自身を何度も繰り返していることに気づきました、そしてそれはもちろん良くありません。それで、私はそれについて何かできるかどうか疑問に思いました。これは私のWPFアプリケーションの一般的なコードです。
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
それで、私はそれをより良くそしてより読みやすくするためにどうにかしてセッターを包むことができるかどうか疑問に思いました。1つのアイデアは次のようなものでした:
protected void PropertySetter<T>(T property, T value, string name)
{
if (EqualityComparer<T>.Default.Equals(property, value))
{
property = value;
OnPropertyChanged(name);
}
}
このような使用法:
private string _name2;
public string Name2
{
get { return _name2; }
set
{
PropertySetter<string>(Name2, value, "Name2");
}
}
しかし、これが本当に賢いのか、値型でもうまくいくのかわかりませんか?
私はこのようなことを最初に試したのではないので、誰かがこのようなことへの確実な方法を知っているなら、チャイムを鳴らしてください。私はpropertyChangedをリフレクションなしでタイプセーフにすることはできなかったと思いますが、そこにあるアイデアも役に立ちます。