首页 新闻 会员 周边

私有字段加上属性实现其透明,那为什么不直接用public啊

0
[已解决问题] 解决于 2013-11-12 18:43

私有字段加上属性实现其透明,那为什么不直接用public啊

cheryl啊超的主页 cheryl啊超 | 菜鸟二级 | 园豆:210
提问于:2013-10-15 13:59
< >
分享
最佳答案
0

这就是属性和数据成员的区别了,《C#高效编程:改进C#代码的50个行之有效的办法》这本书里第一章讲的就是:使用属性而不是可访问的数据成员,感兴趣的话可以去研究一下。其中有一段在这里截了一个图

奖励园豆:5
guwoow | 小虾三级 |园豆:611 | 2013-10-15 16:45
其他回答(4)
0

属性可以区分读写。

写代码的小2B | 园豆:4371 (老鸟四级) | 2013-10-15 14:05
0

意义不一样.

public的东西不安全,任何地方,任何人都可以修改,读取你public的字段.

但是属性不一样,是提供一个统一接口,外部访问就必须从这里.

而且属性还可以把读和写分开,而public字段不行. 属性里面可以写简单的逻辑,但是public不行.

其它属性就是一组方法,在java里不就是getXXX,setXXX方法吗?

C#里面也是方法 get_XXX ,set_XXX,只是这两方法是编译器帮你做的.你可以试试反编译,或者定义XXX这个属性,再加个get_XXX这个方法看能否编译,会是示你有这个方法了.

gw2010 | 园豆:1487 (小虾三级) | 2013-10-15 14:58
0

定义为public不安全

风大招树 | 园豆:174 (初学一级) | 2013-10-15 15:42
0

有时候get和set的时候会有其他的逻辑,例如get的时候发现有了就不再到数据库里去取了(延时加载)

如果你只公布一个public的字段就没法做

单纯的简单读写 实际上 属性和public字段区别不大

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-10-15 16:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册