学习视频链接:C#面试题实战讲解(一)-引用类型和值类型,装箱拆箱_哔哩哔哩_bilibili
1.值类型:值类型存储在栈区,自动释放,无法派生(无法被类继承),适合做数据的载体,例子:简单类型(int、float、long)、枚举、结构体
2.引用类型:值类型存储在堆区,手动释放,支持派生,适合定义程序的行为,例子:类、接口、string、数组
3.装箱:值类型 向 引用类型 转换,代码:
int i = 1;
object obj = i;//装箱int -> object
Console.WriteLine(i);//装箱int -> string
4.拆箱:引用类型 向 值类型 转换,代码:
int j = (int)obj;//拆箱
特点:
装箱拆箱的操作非常低效,不推荐使用。为了避免这种情况,一般会使用泛型。