属性和public 字段的区别是什么?调用 set 方法为一个属性设值,然后用 get 方法读取出来的值一定是 set 进去的值吗?

1、属性可以对设值、取值的过程进行非法值控制,比如年龄禁止设值负数,而字段则不能进行这样的设置

2、虽然 一般情况下 get 读取的值就是 set 设置的值,但是可以让 get 读取的值不是 set 设置的值的。极端的例子。Public Age{get{return100;}set{}}

3、扩展::用 reflector 反编译可以看出,属性内部本质上就是 set_***、get_*** 方法

原文地址:https://www.cnblogs.com/hanningHNN/p/13761844.html