C# 道具和场地?

C# 道具和场地?,c#,oop,C#,Oop,我已经通读了上面这个话题,但它充满了令人困惑的答案 我想知道,用简单的英语来说,这个代码是在字段或属性下面吗。如果是一个字段,什么是属性?如果它是一个属性,那么什么是字段 class Door { public int width { get; set; } } 非常感谢。这是一个属性。它是使用getter、setter和backing变量创建属性的缩写 class Door { public int width { get; set; } } 支持变量是匿名的,但编译器

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

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

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

非常感谢。

这是一个属性。它是使用getter、setter和backing变量创建属性的缩写

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;

}

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

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

class Door
{
     public int width { get; set; }
}
class Door
{
     public int width { get; set; }
}
类似于

class Door
{
    private int width;

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

那是一笔财产。如果是
public int-width
,它将是一个字段。接受答案中的注释对您有帮助吗?您查看过除此之外的任何资源吗?getter和setter表示一个属性。@minitech将此作为答案发布,以便我可以选择您作为所选答案:)没有看到太多带有同一行花括号的c代码。我喜欢。实际问题:你在现实项目中使用公共字段吗?“现在,我可以看到他们的禁令周围充满了宗教情感。”我的老师伊里亚伊万诺夫说,田地是幼儿园的。在现实生活中,你只使用属性。@ÖmerÖzkan:是的,我记得幼儿园C级的字段。过去的好日子。(说真的,我使用字段,我希望这是真实的生活。)@minitech如果你在我的问题下面发布你的第一条评论作为答案,我会选择你作为最佳答案。因为这对我很有帮助。你为什么不做呢?