c# 数据转换(显式隐式),装箱拆箱、值传递与引用传递
一、值传递与引用传递
视频链接https://www.bilibili.com/video/BV1FJ411W7e5?p=148
值类型:int、double、float等
引用类型:object、string、类、结构、接口、自定义
值类型通常被分配到堆栈上,引用类型则分配到托管堆上,值类型由操作系统负责回收,引用类型则由GC负责。
值类型的变量和实际地址都储存在堆栈上,而引用类型的变量(即内存地址)在堆栈中,实际数据储存在托管堆中。
二、装箱与拆箱
装箱:将值类型转换为引用类型
拆箱:将引用类型转换为值类型
int n = 100;
object b = n; //装箱,性能损失,将值类型转换为引用类型
int c = (int)b;//拆箱,将引用类型转换为值类型
判断是否可以拆装箱:看两种类型是否是继承关系,有关系则可能,无则不可能。
//非继承,没有发生装拆箱操作
string str = "12345";
int a = Convert.ToInt32(str);
所有数组都为兄弟关系,其父类为array,array父类为object

泛型是避免性能损失的有效方法

浙公网安备 33010602011771号