使用 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 中“做某事”??
或者换句话说,有没有一种方法可以在“手动”创建属性时自动生成支持变量(以及方便 - 使其保密)?
重复一遍,因为这被标记为重复,我如何在 getter/setter 期间在自动属性习语中“做事”...
...或相反...
如果您编写自己的“手动”属性,如何隐藏、删除或自动提供支持者?
请注意,您或其他程序员当然可能不小心触及 _underscore 支持变量:有什么办法可以避免这种情况吗??
最佳答案
如果你想在 getter/setter 中“做某事”,你不能使用自动属性,除了分配给字段。对于您的示例代码描述的用例,自动属性不是一个选项。有一个明确的支持字段没有错。
关于c# - Unity (Unity5) 中 c# 中的属性 - 你能避免支持变量吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35580895/