因为以前用JAVA时候习惯使用属性,然后到C#后很少使用属性,一般用公有字段来做代替,今天为了了解这些区别特意看了一下这方面的知识。
从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值。
由于属性是get、set方法,它的本质是方法来进行修改赋值,所以在使用上,公有字段的效率要比属性传递更快。
但是,按照面向对象的要求来说,属性是通过get()、set()来给外界调用的,而字段是给类内部使用的。所以从安全性、严谨性来说,应该避免使用公有字段,尽量用私有字段和属性来做代替。
如果某个变量在赋值时候会有一些计算或者限制要求,通过属性赋值对它进行动态修改效果更好,另外如果某个变量对类外只允许引用或者只允许修改时候属性可以通过只有set或者只有get来提供这样一个功能,公有字段等于就是全部开放的形式了。
一些自己的简单看法,纯属为自己做笔记使用。