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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP