
正文
C#基础--属性 字段
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
访问修饰符:
private: 私有成员,在类的内部才可以访问
protected: 受保护的成员,该类内部和继承类的内部可以访问
public: 公共成员, 完全公开, 没有访问限制
internal: 当前程序集内可以访问
1.0字段的定义:
访问修饰符 数据类型 字段名称; 如 public string name;
2.0属性的定义:
访问修饰符 数据类型 属性名称{get; set;}
public string Name { get; set; } //该属性可读可写
public string Email { get; } //该属性是只读属性 属性中只有get块而没有set块, 那么只能取这个属性的值 而不能为这个属性赋值.
public bool Gender { set; } //该属性表示是 只写属性 属性中只有set块而没有get块. 那么只能为这个属性赋值. 而不能取这个属性的值.
3.0属性和字段有啥关系呢?
/* 1. 为什么要保护字段?
* 因为我们希望在为字段赋值或者取值的时候做1个逻辑验证.
*
* 2. 微软提供了一种更为简洁的语法来保护字段---属性.
* 属性的作用: 保护字段.
*
* 3. 如何使用属性来保护字段呢?
* a. 被保护的字段一定要私有化.
* b. 为这个字段写1个属性
* 语法:
* 访问修饰符 属性的类型 属性的名称
* {
* get
* {
* }
* set
* {
* }
* }
*
* 4. 外部如何操作属性.
* a. 图标为扳手的就代表属性.
* b. 外部操作的时候将属性当做字段来操作,使用赋值符号直接赋值或者直接写上属性的名称取值.
*
* 5. 属性到底是如何来保护字段的
* a. 为属性赋值的时候,会调用属性中的set代码块. 在set中可以通过关键字value拿到用户为属性赋的值
* 一般情况下,我们在set代码块中 取出用户为属性赋的值(value) 做逻辑验证.
* 如果符合逻辑 就将用户赋的值赋值给被保护的字段.
* 否则做默认处理.
*
* b. 当我们取属性的值的时候,就会执行属性中的get代码块的内容.
* 最终取到的值,是在get块中return回去的值.
* 一般情况下,我们在get代码块中 将属性保护的字段的值返回.
*/
4.0 属性的本质
属性的本质是1个get方法和1个set方法.
只不过微软提供了1种更为简洁的方式来帮助写这两个方法
我们之所以可以再set里面通过value关键字取到用户赋的值 是因为set本质是1个方法 这个方法的参数叫做value
暂未提供反编译的截图






