前言
在学习C#构造方法和属性的时候,自己对属性与字段很是迷茫,一来不知道他们存在的意义是什么,二来也搞不明白为什么用字段,又为什么用属性。不将就是发现的源动力,下面就让我们站在巨人的肩膀上揭开谜底~
芝士
- 字段
命名:Camel-Case(首字母小写)
用来存数据,考虑到数据的安全性,将字段定义为private,即私有的变量。
那么问题就来了,字段是用来存数据的,但又被定义成私有的变量,那外界肯定就不能访问,这时候属性就起作用了。 - 属性
命名:Pascal命名法(首字母大写)
属性是对字段的封装,它使用get和set访问器来控制如何设置返回字段值。
属性其实就是外界访问私有字段的入口,属性本身不保存任何数据,在对属性赋值和读取的时候其实就是在操作对应的私有字段。
属性本质其实就是一个方法,通过get和set方法来操作对应的字段
把所有字段都设置成private或protected,如果要暴露它们,则把他们封装成属性。
小结
我对属性和字段的简单理解就是“属性的存在是为防止字段中的数据被恶意破坏”。