属性和public 字段的区别是什么?调用 set 方法为一个属性设值,然后用 get 方法读取出来的值一定是 set 进去的值吗?
1、属性可以对设值、取值的过程进行非法值控制,比如年龄禁止设值负数,而字段则不能进行这样的设置
2、虽然 一般情况下 get 读取的值就是 set 设置的值,但是可以让 get 读取的值不是 set 设置的值的。极端的例子。Public Age{get{return100;}set{}}
3、扩展::用 reflector 反编译可以看出,属性内部本质上就是 set_***、get_*** 方法
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步