创建自动实现的属性时,C#会在后台的某个位置为该属性生成成员.我对于我的生活不记得这是什么叫,或者成员的命名约定是什么.谷歌搜索了一段时间后,我认为这可能只是一个想法.
属性:
public int Age { get; set; }
Run Code Online (Sandbox Code Playgroud)
我对隐藏成员的猜测(来自内存):
private int i_age;
Run Code Online (Sandbox Code Playgroud)
编辑#1
为了澄清,我正在寻找自动生成成员的术语,下面是Dmitry Bychenko的回答.术语是"支持领域"
为什么不进行简单的实验呢?
using System.Reflection;
...
public class Experiment {
public int Age { get; set; }
}
...
var fieldNames = string.Join(", ", typeof(Experiment)
.GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
.Select(field => field.Name));
Console.Write(fieldNames);
Run Code Online (Sandbox Code Playgroud)
结果:
<Age>k__BackingField
Run Code Online (Sandbox Code Playgroud)
请注意,与i_age实际字段名称不同<Age>k__BackingField ,不会与任何字段冲突(我们不能声明具有此类名称的字段)
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |