私有字段与构造函数中的属性

时间:2017-09-15 11:18:47

标签: c#

我想知道在类构造函数中使用私有字段是否存在任何显着的性能(或正确性)差异,而不是更改这些私有字段的属性。

样品:

class Pt<T>
{
    public Pt(T _x, T _y)   // More efficient/correct?
    {
        this.x = _x;    // or x = _x
        this.y = _y;    // or y = _y
    }

    public Pt(T _x, T _y)   // Less efficient/correct?
    {
        X = _x;
        Y = _y;
    }

    private T x, y;

    T X { get { return x; } set { x = value; } }
    T Y { get { return y; } set { y = value; } }
}

1 个答案:

答案 0 :(得分:1)

就正确性而言,您的代码绝对没有区别。从性能的角度来看,使用属性版本时会有轻微的开销,因为设置/获取属性需要额外的方法调用,因为属性由编译器转换为方法。这种性能影响非常小,不会引人注意,因此编写最易读且与.NET标准一致的版本