1.数据类型按存储方式可分为两类:
值类型(源于System.ValueType)
引用类型(源于System.Object)
2.结构的定义:
结构中可以有字段也可以有方法
定义时,结构中的字段不能被赋初值
3.结构的使用:
可以不用new,直接定义结构的对象即可
(前提该属性的类型不是数值类型)
声明结构的对象后,必须给结构的成员赋初值
4.结构是值类型类是引用类型
结构体中没有默认构造函数,但类中有默认构造函数
5.装箱和拆箱:
装箱:将值类型(栈)转换成引用类型(栈堆)
拆箱:从引用类型(栈堆)转换成值类型(栈)
由于装箱和拆箱对系统性能损耗很大,所以在真实的开发中我们尽量避免装箱和拆箱的操作。
6.
如果方法的参数类型本身是值类型,又没有ref修饰,那么对参数值的修改,不会永久保存
如果方法的参数类型本身是值类型,但是有ref修饰,那么对象参数值的修改,也会永久保存。
值类型传递 :不带ref的参数传递
引用类型传递:带ref的参数传递
引用类型的内存原理图:
数组赋值原理图
结构体:
结构体不用new,就可以直接对其属性赋值
结构体中可以有字段,属性和方法
结构体是值类型,类是引用类型
在结构体中不能给字段赋初值,但是类中可以.
结构体中没有默认构造函数,但类中有默认构造函数