值型別與引用型別區別and裝箱與拆箱

2021-06-26 07:02:42 字數 367 閱讀 9656

1.引用型別的內存在託管堆上分配的。new操作符會返回物件的記憶體位址。

2.值型別比引用型別輕量級

值型別包含啥呢,結構和列舉

3.值型別是不能作為基類

4.gc不管值型別

5.引用型別沒有初始化時是null,即不指向任何的記憶體位址,如果使用會拋異常nullreference異常

值型別的初始值是0

6.賦值操作

值型別進行賦值操作的時候是執行逐一欄位的複製,將引用型別賦值只是複製記憶體位址。

裝箱和拆箱

把值型別轉成引用型別就是裝箱操作

裝箱的操作

1.在堆中分配記憶體

2.把值的字段複製到堆中的記憶體

3.返回堆中的位址

值型別與引用型別區別

凡是直接繼承自system.valuetype的都是值型別,其他就是引用型別 區別就是乙個是傳值,乙個是傳引用 c 中值型別與引用型別的值傳遞與引用傳遞 值型別 結構體,數值型別 int,double,char,bool型,列舉,可空型別 nullable 引用型別 陣列,使用者定義的類 介面 委託...

值型別 引用型別,裝箱 拆箱

值型別 宣告乙個值型別變數,會在棧上分配乙個空間,空間裡儲存的就是變數的值 引用型別 宣告乙個引用型別變數,會在棧中分配乙個空間,儲存乙個引用,這個引用指向了乙個託管堆。值型別 struct,列舉,數值型別,bool型別 引用型別 陣列,類,介面,委託 delegate object,string ...

值型別與引用型別的區別

1.值型別儲存的是數值,引用型別儲存的是位址。2.值型別存放在棧中,引用型別存放在堆中。3.值型別不可以是null,引用型別可以使null。4.值型別不具有多型性,引用型別具有多型性。5.值型別沒有繼承性,引用型別有繼承性。6.值型別有裝箱與未裝箱,引用型別只有裝箱。using system usi...