C# 自动属性
属性(properties)
属性的作用
1、封装字段,可以保护类的私有字段
2、控制 1.读写权限 及 2.字段的访问规则(如:年龄范围)。但平时,主要是用来封装 读写权限。
传统属性定义
private int _age; public int Age { get { return _age; } set { _age = value; } }
缺点:定义属性的代码多 语法不简洁 繁琐
优点:定义属性的时候,可以带一些逻辑判断,这是自动属性所不能做到的。
例如:
private int _age; public int Age { get { return _age; } set { if((0<value)&&(value<200)) { _age = value; } } }
自动属性
不需要定义字段 ,自动属性主要用在对 字段的 读写权限的封装,帮助减少程序员代码,让代码更好看;但实质上在编译时,还是会自动生成一个对应的字段的。
所以,从这个意义上说,自动属性就相当于是微软提供的一个“语法糖”了。
public int Age{get;set;} //该句代码的作用和上面传统属性定义的语句的作用是一样的
优点:定义语法简介,高效、减少程序员书写的代码量
缺点:定义属性的时候,不能做一些逻辑判断。
用自动属性程序员写的代码少了,机器做的事情就多了,那我们到底要不要使用它?
如果 是针对 读写权限的封装,就推荐使用,因为它是在编译的时候产生了负担,并不是在运行的时候。(不会影响客户运行程序时的效率!)