深入C#数据类型

数据类型按存储方式可分为两类:值类型(栈)和引类型(堆)

值类型:不同的变量会分配不同的存储空间
存储空间存储的是该变量的值
改变一个变量值不会影响另一个变量值

引用类型:赋值是把原对象引用传递给另一个引用
两个引用指向同一块内存空间
结构的特点
1值类型


2具有较快数据提取速度(结构中可以有字段也可以有方法)
当对象需要较少字段表示时,可以选用结构
结构是值类型,数据提取速度快


但是频繁的赋值操作会占有较大的空间,在开发中多数情况下定义为类

值类型和引用类型之间的转换

 

        装箱
值类型 ------> 引用类型
      <------
 拆箱

 

在实际开发中应该减少不必要的装箱和拆箱
因为二者的存储方式不同,转换时性能损失较大

 

不加ref传递参数,值传递,传递的是副本,不会改变原值
加ref把值类型按引用传递,传递的是引用地址,会改变原值
使用值传递,在方法中对参数值得更改在调用后不能保留;使用ref方式传递,可以将对参数值更改保留

原文地址:https://www.cnblogs.com/wh1520577322/p/8157839.html