假设我在一个类中有以下内容(扩展了 MVVMLight 的 ViewModelBase):
private ObservableCollection<Merchant> merchants;
public ObservableCollection<Merchant> Merchants
{
get { return merchants; }
set { Set(nameof(Merchants), ref merchants, value); }
}
在我的类中,我应该初始化属性值还是支持字段?在我的类的方法中,我应该使用属性还是支持字段?
我只是在学习,我倾向于同时使用两者,我看不出有什么区别。
简单地说:在类内部,我应该使用属性还是它的支持字段?
最佳答案
这真的取决于你想做什么。
当您的属性引发 PropertyChanged
时,最好使用属性 setter 而不是支持字段,即使是在您的类中也是如此,这样消费者就会收到更改值的通知。
不过有一个异常(exception):在你的构造函数中,你会使用支持字段,因为那时没有消费者可能已经订阅了 PropertyChanged
事件,所以从构造函数引发事件是没必要。
如果你的 setter 中有其他逻辑 - 比如验证 - 你总是应该使用属性 setter 而不是支持字段。
关于c# - 在类里面,您是将值分配给属性还是支持字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19397940/