值类型和引用类型,装箱和拆箱
c#中任何类型都是隐式继承自 System.object(引用类型)。
分为两大类,值类型和引用类型。
值类型包括:简单类型(int,float,double等),结构体,枚举
引用类型包括:自定义的类,字符串,接口,数组
区别:1. 值类型存储在栈中,自动释放,比较高效;引用类型存储在堆中,需要手动释放;
2. 值类型不能派生,也就是不支持多态;引用类型反之;
3. 值类型适合做数据载体;引用类型适合定义行为;
值类型转换为引用类型,叫装箱,反之叫拆箱,装箱拆箱需要消耗很多资源,非必要不建议这么做。