簡介
該博文記錄一些工作中接觸較多的基礎知識點的總結。
知識點
一、值類型和引用類型
定義:值類型派生自System.ValueType,包括一般的非字符串基本類型(decemal,int,float)、結構體、枚舉,可空類型(T?)。引用類型包括接口,類,數(shù)組,委托,string等需要人工new創(chuàng)建的類型。
內存分配上有什么區(qū)別?
值類型分配在它聲明的地方:作為字段時,跟隨其所屬的變量(實例)存儲。作為局部變量時(eg:方法內部局部變量),存儲在棧上;而引用類型的的聲明(指針)放在棧里面,而對應的實例對象(new 的對象)放在堆里面,引用類型在 C++中需要人工回收,而在C#中GC的3級回收機制可以自動回收托管代碼。
錯誤回答:值類型放在內存棧里面,而引用類型放在堆里面。
延伸閱讀
學習是年輕人改變自己的最好方式