概念: ==引用类型:string、数组、类== ==值类型:剩下都是,包括数组、enum、结构体== 值类型默认都是0 bool类型是false 引用类型默认值是null 使用区别: 值类型:在相互赋值时,把内容进行拷贝 //他变我不变 引用类型:把相互赋值时,把==地址==进行拷贝 //他变我也变 原因: 值类型和引用类型 存储的内存区域不同,存取方式也不一样 值类型:栈空间 —— 小但是快 (0GC) 引用类型:堆空间 —— 大但是慢 (且有GC) 案例: 值类型: ```Csharp static void ChangeValue(int value) { value =3: } static void Main(string[] args) { int a = 1; ChangeValue(1); cw(a); } //仍然输出1 ``` 引用类型: ```Csharp static void ChangeValue(int[] value) { value =99: } static void Main(string[] args) { int[] a = {1}; ChangeValue(a); cw(a[0]); } //输出99 ``` #基础