基础
1、值类型
1.1 在栈上分配内存,在声明时初始化才能使用,不能为null。
1.2 值类型超出作用范围系统自动释放内存。
1.3 主要由两类组成:结构,枚举
结构分为以下几类
1、整形(Sbyte,Byte,Char,Short,Ushort,Int,Uint,Long,Ulong)
2、浮点型(float,Double)
3、decimal
4、bool
5、自定义结构体(struct)
2、引用类型
1、引用类型在堆中分配内存,初始化时默认为null
2、引用类型是通过垃圾回收机制回收。
3、包括类、接口、委托、数组以及内置引用类型object、string
由于C#中所有数据类型都是由基类System.Object继承而来,所以值类型和引用类型的值可以通过显示或者隐式操作相互转换,而这种转换过程就是装箱和拆箱过程。
1、装箱 值类型--引用类型
2、拆箱 引用类型--值类型