0
Public Class FooBar
{
    private int _foo;

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

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

访问类中的字段或属性(如果存在)是否有更可接受的做法?我一直有访问该字段的习惯,但是由于我一直在做有很多 INotifyPropertyChanged 的​​ WPF,我发现自己需要访问该属性才能更改通知。所以现在我在我的类中混合了字段和属性访问,虽然从编译器的角度来看,风格和可读性并不重要,但感觉……很尴尬。

4

2 回答 2

2

在某些情况下,访问该属性没有意义(例如,如果您正在实现该属性本身)。抛开这些情况,我会默认使用属性样式(除非我有特定的理由不这样做)。通过属性访问该字段会将所有更改引导到单个代码路径中,从而使更改实现和调试更容易,并且不易出错。

于 2009-08-01T15:07:17.913 回答
2

这很大程度上取决于个人风格。这里没有 100% 正确或错误的答案。

我的偏好是每次都经过这处房产,有几个原因

  • 使调试更容易,因为您可以中断属性访问并查看值的所有获取/设置。不可能有一个字段
  • 一致性:在某些情况下,例如自动属性,不可能直接进入支持字段。每次遍历该属性都会显示相同的代码访问相同的值。
  • 性能:JIT可能会内联简单属性,因此性能问题通常是一个静音点。
于 2009-08-01T15:28:00.233 回答