c# - Unity (Unity5) 中 c# 中的属性 - 你能避免支持变量吗

标签 c# unity3d

使用 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/

相关文章:

c# - WPF 成长动画

c# - 如何在不删除所有条件的情况下覆盖现有绑定(bind)?

c# - 在 Entity Framework Core 中获取具有导航属性的实体的正确方法是什么?

c# - 每个 “foreach” 循环的每次迭代都会生成 24 字节的垃圾内存?

c# - 为什么 XmlWriter 总是输出 utf-16 编码?

c# - 如何在 Excel VSTO 加载项中为 OnUndo 调用 C# 方法?

c# - 从 Canvas Scaler (Unity) 检索缩放量

c# - Photon Networking Unity AllProperties 未设置

c# - 无法在 Unity 中停止协程

c# - 如何用手指滑动沿所有 3 个轴旋转对象?