从声明类中访问字段或属性

时间:2009-08-01 14:53:55

标签: .net properties field readability

Public Class FooBar
{
    private int _foo;

    public int Foo { 
        get { return _foo; }
        set { _foo = value; }
    }

    public void DoStuff()
    {
        _foo++; // Do this?
        Foo++; // Or this?
    }
}

在类中访问字段或属性(如果存在)是否有更为公认的做法?我一直习惯访问该领域,但由于我一直在做WPF,它有很多INotifyPropertyChanged,我发现自己需要访问该属性才能更改通知。所以现在我在我的课程中混合了字段和属性访问,而从编译器的角度来看它无关紧要,风格和可读性,感觉......很尴尬。

2 个答案:

答案 0 :(得分:2)

有些情况下访问该属性没有意义(例如,如果您正在实现该属性本身)。把这些案子放在一边,默认我会选择房产风格(除非我有特殊原因不这样做)。通过属性访问该字段将把所有更改都指向一个代码路径,这样可以更轻松地更改实现和调试,并且可以减少错误。

答案 1 :(得分:2)

很多都归结为个人风格。这里没有100%正确或错误的答案。

我的偏好是每次都要通过这个属性,原因有几个

  • 使调试更容易,因为您可以中断属性访问并查看值的所有get / set。字段不可能
  • 一致性:在某些情况下,例如自动属性,无法直接进入支持字段。每次浏览属性都会显示访问相同值的相同代码。
  • 性能:简单的属性可能由JIT内联,因此性能问题通常是一个静音点。