自动实现的属性-隐藏成员的签名

  • 本文关键字:成员 隐藏 属性 实现 c#
  • 更新时间 :
  • 英文 :


创建自动实现的属性时,C#会在后台某处为该属性生成一个成员。我一辈子都不记得这叫什么,也不记得成员的命名惯例叫什么。在谷歌上搜索了一段时间后,我想问一下可能是个主意。

属性:

public int Age { get; set; }

我对隐藏成员的猜测(根据记忆(:

private int i_age;

编辑#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);

结果:

<Age>k__BackingField

请注意,与i_age不同,实际字段的名称<Age>k__BackingField与任何字段都不冲突(我们不能用这样的名称声明字段(

嗨你可能想试试这个。

private int i_age;
public int Age 
{ 
get {return i_age;} 
set {i_age = value;}
}

最新更新