为什么在实现INotifyPropertyChanged时我需要私有字段

时间:2017-11-07 22:23:38

标签: c# wpf data-binding properties

为什么在实现INotifyPropertyChanged时我需要私有字段?我可以不删除名称,只使用下面的PersonName字符串吗?

private string name;
public string PersonName
      {
          get { return name; }
          set
          {
              name = value;
              // Call OnPropertyChanged whenever the property is updated
              OnPropertyChanged("PersonName");
          }
      }

1 个答案:

答案 0 :(得分:3)

您需要它,因为您需要将信息存储在某处。如果您在getter或setter中引用PersonName,那么您将以递归方式调用自己,并导致堆栈溢出。

如果你{private}变量仍然存在public string PersonName {get; set;},那么编译器就会隐藏它。如果您使用像DotPeek这样的反编译器,您可以查看编译器生成的代码并查看私有变量。