属性:属性是语法糖,反编译后,是一个私有字段和两个方法
[CompilerGenerated]
private string <Name>k__BackingField;
[CompilerGenerated]
public void set_Name(string value)
{
this.<Name>k__BackingField = value;
}
[CompilerGenerated]
public string get_Name()
{
return this.<Name>k__BackingField;
}
而且WPF的MVVM里也是在属性的SET里对字段进行监控,同样,我们也可以加上一句:
set{
this.name=value;
if(this.name!=this._name)
{ NameChange();}
this._name=this.name;
}
而且属性也可以控制外部调用时的功能set/get。所以凡是被外部调用的,都写属性,而内部使用的,就写字段。另外,在序列化时,只会序列化公共的字段或属性。
原文:https://www.cnblogs.com/kafeibuhuizui/p/10619937.html