在下面的示例中,后备字段不执行任何类型的计算,而只是返回一个值。有没有办法在不需要后备字段的情况下编写此代码?我并没有真正看到在这种情况下拥有一个的目的。如果我的XAML直接绑定到Age,我真的不知道为什么我还需要_age。
private int _age;
public int Age
{
get {return _age; }
set
{
_age = value;
OnPropertyChanged("Age");
}
}
private void ButtonClickIncrease(object sender, RoutedEventArgs e)
{
Age++;
}
private void ButtonClickDecrease(object sender, RoutedEventArgs e)
{
Age--;
}
答案 0 :(得分:2)
尽管后备字段未执行任何计算,但它用于存储Age
属性的值。您需要它以便在getter中返回值并在setter中分配新值。如果您没有它,吸气剂还会返回什么?二传手会存储什么?
也许您习惯于使用自动属性,但您似乎不使用辅助字段。当您的getter和setter除了返回并分配该属性外,什么都不做时,自动属性是一种简写形式。但是,由于要执行其他操作(即OnPropertyChanged("Age")
),因此无法使用自动属性,因此必须使用后备字段对getter和setter进行手工编码。参见Auto-Implemented Properties。