C# 程式設計中的裝箱和拆箱之間的區別
C# 提供了兩種方法將值型別連結到引用型別,反之亦然。這兩種連結方法分別稱為裝箱和拆箱,其中裝箱用於將值型別轉換為物件型別,而拆箱用於將物件型別轉換為值型別。
以下是裝箱和拆箱之間最重大的區別。
序號 | 要點 | 裝箱 | 拆箱 |
---|---|---|---|
1 | 實現 | 裝箱使引用型別可以指向值型別。 | 拆箱的過程主要是從裝箱的物件中獲取值。 |
2 | 儲存 | 在裝箱的情況下,儲存在堆疊中的值將被複制到儲存在堆記憶體中的物件中。 | 另一方面,在拆箱的情況下,儲存在堆記憶體中的物件的值將被複制到儲存在堆疊中的值型別中。 |
3 | 轉換型別 | 裝箱通常稱為隱式轉換。 | 拆箱是指顯式轉換。 |
裝箱與拆箱的示例
JavaTester.java
public class JavaTester { public static void main(String[] args){ int val = 119; // Boxing Object o = val; // Change the value of val val = 120; //unboxing int x = (int)o; System.out.println("Value of x is {0}"+ x); System.out.println("Value type of val is {0}"+val); System.out.println("Object type of val is {0}"+o); } }
輸出
Value of x is {0}119 Value type of val is {0}120 Object type of val is {0}119
廣告