【发布时间】:2017-11-22 15:41:00
【问题描述】:
在实现简单属性时,可以使用auto-implemented properties,让代码看起来更简单,像这样:
public int MyInt
{
get; set;
}
或者您可以使用“手动”私有字段来实现它。在这种情况下,我经常看到人们在使用set 之前检查值的变化。像这样:
private int _myInt;
public int MyInt
{
get { return _myInt; }
set
{
if value != _myInt
_myInt = value;
}
}
所以我的问题是:检查更改的值(在后一种情况下)对任何事情都有好处吗?如果是,那么这对自动实现的属性有什么影响?
【问题讨论】:
-
您可以进行简单的验证。
-
在我看来,属性的 setter 或 getter 方法中不应该有任何逻辑。并建议使用 Auto 属性。
-
只是一个旁注,它被称为“私有领域”,而不是“私有财产”。公共属性使用私有字段。
-
你要在实现
INotifyPropertyChanged的时候做那个检查,否则就没用了。 -
@Dennis_E 有趣的是你应该提到它。想想看,我在这个话题上所做的大部分阅读都与
INotifyPropertyChanged有关。
标签: c# properties