我发现我经常重复自己,这当然不好。所以我想知道我是否可以为此做点什么。这是我的 WPF 应用程序中的常见代码:
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
所以我想知道我是否可以以某种方式包装 setter 以使其更好、更具可读性。一个想法是这样的:
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 类型安全,但那里的任何想法也会有所帮助。