tgy*_*tgy 6 c# properties duplicates
两者之间有什么区别,如果有的话
public int x;
Run Code Online (Sandbox Code Playgroud)
和
public int x { get; set; }
Run Code Online (Sandbox Code Playgroud)
?
第一个称为字段.第二个是属性,在这种情况下是一个自动实现的属性.
属性就像字段一样,但使用getter和setter函数来检索和设置值.编写上述属性的另一种方法如下:
private int _x;
public int X
{
get
{
return _x;
}
set
{
_x = value;
}
}
Run Code Online (Sandbox Code Playgroud)
_x在这种情况下,变量称为后备字段.使用自动实现的属性,您无法访问支持字段或自定义getter/setter中的代码,但如果您不需要,则可以更短,更简洁.
作为C#中的规则,大多数情况下,任何公共成员都应该作为属性而不是字段公开.