道具和领域?

时间:2013-09-24 17:41:47

标签: c# oop

What is the difference between a Field and a Property in C#?

我已经阅读了上面的这个主题,但它充满了令人困惑的答案,等等等等。

我想知道,用简单的英语,这个代码是在字段或属性下面吗? 。如果它是一个领域,什么是财产?如果它是一个属性,那么什么是字段?

class Door
{
     public int width { get; set; }
}

非常感谢。

2 个答案:

答案 0 :(得分:1)

属性。它是使用getter,setter和支持变量创建属性的简写。

class Door
{
     public int width { get; set; }
}

支持变量是匿名的,但基本上编译器为其生成的代码与:

相同
class Door {

  private int _width;

  public int width {
    get {
      return _width;
    }
    set {
      _width = value;
    }
  }

}

字段只是类或结构中的公共变量,如下所示:

class Door {

  public int width;

}

在这种情况下,编译器不会创建任何代码来处理字段,它只是一个普通变量。

答案 1 :(得分:1)

属性只是定义字段的getter和setter的语法。

class Door
{
     public int width { get; set; }
}

类似于

class Door
{
    private int width;

    public int getWidth()
    {
        return width;
    }
    public void setWidth(int i)
    {
        width = i;
    }
}