-5

C# 中的字段和属性有什么区别?

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

我想知道,用简单的英语,这个代码是在字段或属性下面吗?. 如果是字段,什么是属性?如果是属性,什么是字段?

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

非常感谢。

4

2 回答 2

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;

}

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

于 2013-09-24T17:46:37.470 回答
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;
    }
}
于 2013-09-24T17:47:26.130 回答