伟大的我曾经说过:
人都存在思维惯式的问题,直到有一天,你发现有创新精神的人竟然把你习以为常的东西,玩出了花!
一开始,以为属性只是c#为了防止外部修改类的成员变量而搞出来的一种措施,所以每次写属性都直接用快捷键ctrl+r,e直接生成了,后来才发现:
只要不在类中修改成员变量的值,可以加进去你想要的逻辑,来玩各种“把戏”。
属性的底线
如果在属性中修改了成员变量的值,出错时将很难发现,因为访问成员变量是通过实例直接'.'出来的,所以你只能发现访问一次值就改变一次,找不到具体出错的位置,将会造成很严重的影响。所以不能修改成员变量是属性的“底线”!
外部的接口
软件的一个原则是,不管内部如何改变,开放给外部调用的接口尽量不要改变,不然会造成版本不兼容的很多问题。但如果类的数据结构改变了怎么办呢?相信你已经猜到了,只要在属性中对改变的成员变量还原成之前版本调用时的值就OK了!
希望这篇文章能够让你对属性有一种新的认识!