What is the difference between a Field and a Property in C#?
我已经阅读了上面的这个主题,但它充满了令人困惑的答案,等等等等。
我想知道,用简单的英语,这个代码是在字段或属性下面吗? 。如果它是一个领域,什么是财产?如果它是一个属性,那么什么是字段?
class Door
{
public int width { get; set; }
}
非常感谢。
答案 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;
}
}