为什么在实现INotifyPropertyChanged时我需要私有字段?我可以不删除名称,只使用下面的PersonName字符串吗?
private string name;
public string PersonName
{
get { return name; }
set
{
name = value;
// Call OnPropertyChanged whenever the property is updated
OnPropertyChanged("PersonName");
}
}
答案 0 :(得分:3)
您需要它,因为您需要将信息存储在某处。如果您在getter或setter中引用PersonName
,那么您将以递归方式调用自己,并导致堆栈溢出。
如果你{private}变量仍然存在public string PersonName {get; set;}
,那么编译器就会隐藏它。如果您使用像DotPeek这样的反编译器,您可以查看编译器生成的代码并查看私有变量。