当我制作一个自动财产时,后台会发生什么?

Raz*_*n_k 2 c# automatic-properties

编辑:不是一个完全不同的问题,这个我要问如何自动性质内部工作

当我制作一个自动财产时,后台会发生什么?

这相当于

public int SomeProperty {get; set;}
Run Code Online (Sandbox Code Playgroud)

这个

 private int _someField;
 public int SomeProperty 
 {
    get { return _someField;}
    set { _someField = value;}
 }
Run Code Online (Sandbox Code Playgroud)

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

Sel*_*enç 5

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

public int SomeProperty {get; set;}
Run Code Online (Sandbox Code Playgroud)

这是一个语法糖:

private int _someField;
public int SomeProperty 
{
   get { return _someField;}
   set { _someField = value;}
}
Run Code Online (Sandbox Code Playgroud)

它是一种语法糖:

private int _someField;

public int get_SomeProperty()
{
    return _someField;
}

public void set_SomeProperty(int value)
{
    _someField = value;
} 
Run Code Online (Sandbox Code Playgroud)

您可以使用ildasm.exe以下方式查看实现:

在此输入图像描述

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