在 C# 中,我们可以这样做:
private string _myField;
public string MyProperty
{
get { return _myField; }
private set { _myField = value; }
}
在我们可以根据需要在类中设置 _myField
的同时,在属性中使用私有(private) setter 有什么好处?为什么我们要使用 MyProperty
的 setter?
最佳答案
setter 可以在更新属性时实现其他行为/逻辑,因此您不必在属性可能更新的每个位置手动实现它。
它可以:
- 自动更新其他字段
- 验证新值(例如,确保电子邮件地址与正则表达式匹配)
- 将每次更新字段时需要运行的代码保存在一个地方
例如:
private string _myField;
private int _myField_num_updated;
private DateTime _myField_updated_at;
public string MyProperty
{
get { return _myField; }
private set {
_myField = value;
_myField_num_updated++;
_myField_updated_at = DateTime.Now;
}
}
关于c# - 既然可以直接访问成员变量,为什么还要使用私有(private)属性 setter 呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12014872/