第三章 用对象思考:值类型和引用类型
硬编码:
直接使用值进行运算
常量关键字 const
常量声明时必须赋值
常量名最好大写
枚举关键字 enum
枚举限定取值范围,枚举中无方法
声明枚举语法:
访问修饰符 enum 枚举名
{值1 = 0,值2 = 1,…}
枚举的成员是整数型,枚举成员可以使用别名
枚举的成员接受赋值,例如:{值1 = 123}
结构关键字 struct
Color.FromArgb(r,g,b) //通过RGB取色
结构是轻量级的类,使用时可以不用new,可以有构造函数,但不能添加无参构造
函数,系统已提供
结构的字段不能赋初值
结构中有属性、方法
结构可以实现接口
结构不能被继承
类是引用类型,结构是值类型。类中一般有大量的逻辑操作,结构中大多数情况是一些数据和基本计算
值类型
产生一个值副本
值副本的修改不对值原本产生影响
引用类型
产生一个值地址副本
通过值地址找到数据,数据产生影响
装箱与拆箱
值类型与引用类型的转换
值类型转引用类型称为装箱 //引用类型 = 值类型
引用类型装值类型成为拆箱 //值类型 = (值的类型)引用类型
object称为基类型
现有装箱后有拆箱
ref传递 //传递数据地址
值类型与引用传递的四种方式:
值传递值类型 //传递数据副本,不会修改原始数据
值传递引用类型 //传递数据地址,会修改原始数据
ref传递值类型 //ref传递数据地址,会修改原始数据
ref传递引用类型 //ref传递数据地址的地址,会修改原始数据
基本类型、枚举、结构 //值类型
类、接口、委托、数组、字符串 //引用类型
传递就是拷贝
值类型拷贝数据
引用类型拷贝数据地址(引用)
索引器
让一个类的数据成员,更快的访问
索引器可以使用索引访问,也可以自定义访问方式
声明索引器语法:
public 类名 this(参数){}
类图
类图是表示类的结构和类与类之间关系的图表