在Unity5中(很难确定正在使用的c# / Mono / .Net版本),我们会像这样精确地处理属性:
private int _distance;
public int Distance
{
private set
{
_distance = value;
controls.Blahblah(_distance);
}
get
{
Debug.Log("hah!);
return _distance;
}
}
但是考虑一下c#中的新"自动属性",它们似乎像是:
public int Distance {get; set;} // ?
但是我不知道如何在getter/setter中“做一些事情”?
换句话说,有没有办法在“手动”创建属性时自动生成备份变量(以及方便性 - 使其保持私有)?
重申一遍,因为这被标记为重复问题,如何在自动Property习语中的getter/setter中“做一些事情”...
...或者反过来...
如何隐藏、摆脱或自动提供backer,如果你编写自己的“手动”属性?
请注意,当然你或另一个程序员可以意外触碰下划线后备变量:有没有任何方法完全避免这种情况?