hat*_*enn 6 c# field properties
在C#中,我们可以做类似的事情:
private string _myField;
public string MyProperty
{
get { return _myField; }
private set { _myField = value; }
}
Run Code Online (Sandbox Code Playgroud)
在我们可以根据需要_myField在类中设置私有setter的优势是什么?我们为什么要使用setter MyProperty?
更新属性时,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;
}
}
Run Code Online (Sandbox Code Playgroud)
使用属性访问器(get和set)的目的是隐藏有关如何查询或修改特定值的内部实现.在您的情况下,setter很简单,但将来可能会变得更复杂.通过隐藏实现,您可以最大限度地减少潜在更改的影响并保持界面简单.
现在关于你的问题:为什么使用私人二传手?使用私有设置器的原因与一般使用设置器的原因完全相同.在私有setter的情况下,该setter的用户是类本身的代码.在公共设置者的情况下,用户可以是使用该类的任何人.使用setter的优点仍然相同.