简介
该博文记录一些工作中接触较多的基础知识点的总结。
知识点
一、值类型和引用类型
定义:值类型派生自System.ValueType,包括一般的非字符串基本类型(decemal,int,float)、结构体、枚举,可空类型(T?)。引用类型包括接口,类,数组,委托,string等需要人工new创建的类型。
内存分配上有什么区别?
值类型分配在它声明的地方:作为字段时,跟随其所属的变量(实例)存储。作为局部变量时(eg:方法内部局部变量),存储在栈上;而引用类型的的声明(指针)放在栈里面,而对应的实例对象(new 的对象)放在堆里面,引用类型在 C++中需要人工回收,而在C#中GC的3级回收机制可以自动回收托管代码。
错误回答:值类型放在内存栈里面,而引用类型放在堆里面。
延伸阅读
学习是年轻人改变自己的最好方式