到目前为止,我的印象是Properties
和amp;Methods
在C#中是两个不同的东西.但是后来我做了类似下面的事情.
这让我大开眼界.我原以为会有一个属性stringProp
和一个方法stringProp
,但结果我得到了这个.
为什么会这样?有人能解释一下吗.
到目前为止,我的印象是Properties
和amp;Methods
在C#中是两个不同的东西.但是后来我做了类似下面的事情.
这让我大开眼界.我原以为会有一个属性stringProp
和一个方法stringProp
,但结果我得到了这个.
为什么会这样?有人能解释一下吗.
是的,编译器为属性生成一对get和set方法,并为自动实现的属性生成一个私有备份字段.
public int Age {get; set;}
相当于:
private int <Age>k__BackingField;
public int get_Age()
{
return <Age>k__BackingField;
}
public void set_Age(int age)
{
<Age>k__BackingField = age;
}
访问您的属性的代码将被编译为调用这两个方法之一.这正是将公共领域变为公共财产是突破性变化的原因之一.
看琼恩·斯基特的Why Properties Matter.