当我自动 属性 时,后台会发生什么?

When i make an automatic Property what happen's in the background?

编辑:一个与 this 完全不同的问题,我问的是自动属性在内部是如何工作的

当我自动 属性 后台发生了什么?

这等于

public int SomeProperty {get; set;}

这个

 private int _someField;
 public int SomeProperty 
 {
    get { return _someField;}
    set { _someField = value;}
 }

这是字面上发生的事情(即创建了一个私有字段)还是它只是为了解释事情而呈现并且它的工作方式不同

是的,这正是发生的事情,这个:

public int SomeProperty {get; set;}

是这个的语法糖:

private int _someField;
public int SomeProperty 
{
   get { return _someField;}
   set { _someField = value;}
}

它是一个语法糖:

private int _someField;

public int get_SomeProperty()
{
    return _someField;
}

public void set_SomeProperty(int value)
{
    _someField = value;
} 

您可以使用 ildasm.exe:

自己查看实现

生成了两种获取和设置私有字段值的方法。唯一的区别是生成字段的名称。