2009-08-01 37 views
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? 
    } 
} 

是否有一种更为接受的做法来访问字段或属性(如果存在)在类中?我一直习惯于访问该领域,但由于我一直在做WPF,它有很多INotifyPropertyChanged,我发现自己需要访问属性才能更改通知。所以,现在我在整个类中都有字段和属性访问的组合,而从编译器的角度来看,它没有关系,风格和可读性,这感觉......尴尬。来自申报类内的访问字段或属性

回答

2

当然有些情况下,访问属性没有意义(例如,如果你正在实现属性本身)。把这些案件放在一边,我会默认使用属性风格(除非我有一个特定的理由)。通过属性访问字段将把所有的变化引导到一个代码路径中,从而更容易地改变实现和调试,并且可能不太容易出错。

+0

单一代码路径是一个很重要的原因,为什么我开始对我以前的所有字段都进行访问时感到不舒服。如果我从字段开始,然后添加一堆属性访问,然后在我的属性设置器中添加一些额外的功能,属性访问会触及该属性,但所有字段访问都不会。 – kenwarner 2009-08-01 15:50:04

2

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

我的选择是通过属性每次去的一对夫妇的原因

  • 使调试容易,因为你可以在属性访问突破和看到所有的get/set值。不适用于字段
  • 一致性:在某些情况下,例如自动属性,无法直接进入后备字段。每次浏览该属性都会显示相同的代码访问相同的值。
  • 性能:简单的属性是可能由JIT内联,所以性能问题通常是一个静音点。