为什么有些字段是公开的,有些字段有属性?

时间:2011-02-25 09:58:00

标签: .net properties standards

只看了几篇教程,并且很惊讶作者有时会使用没有限制的属性和公共字段。我看不出有任何理由这样做。我不应该每次只是为了与“标准”保持一致而使用它吗?

class A
{
  public bool B;

  private bool c
  public bool C
  {
    get
    {
      return c 
     }
    set
    {
      c=value;
     }

  }
}

2 个答案:

答案 0 :(得分:6)

使用公共字段几乎总是一个坏主意。 Just use properties

您还应该了解自动实现的属性(在C#3中引入),它允许您的C属性写为:

public bool C { get; set; }

答案 1 :(得分:0)

拥有私人领域总是更好的做法。您应该使用标准编码指南,使代码保持一致。

您可以使用自动实现的属性完全取消使用私有字段。

Public int MyProperty {get; set;}

您还可以为属性设置私有集,以便不能将它们设置在类的范围之外,这就像创建只读属性

Public int MyProperty {get; private set;}