close
http://msdn.microsoft.com/zh-tw/library/yz2be5wk.aspx
Boxing 和 Unboxing
Boxing 處理是將實值型別轉換成 object 型別,或是任何由這個實值型別實作的介面型別。 當 CLR Box 處理實值型別時,它會將值包裝在 System.Object 中,並儲存在 Managed 堆積上。 Unbox 處理則會從物件擷取實值型別。 Boxing 是隱含的;unboxing 是明確的。 boxing 和 unboxing 的概念是 C# 型別系統統一檢視的基礎,其中可將任何型別的值視為物件。
在下列範例中,會以「Box」處理整數變數 i,然後將此變數指派給物件 o。
int i = 123;
// The following line boxes i.
object o = i;
物件 o 接著即可經 Unbox 處理,並指派給整數變數 i:
o = 123;
i = (int)o; // unboxing
Boxing 處理是將實值型別轉換成 object 型別,或是任何由這個實值型別實作的介面型別。 當 CLR Box 處理實值型別時,它會將值包裝在 System.Object 中,並儲存在 Managed 堆積上。 Unbox 處理則會從物件擷取實值型別。 Boxing 是隱含的;unboxing 是明確的。 boxing 和 unboxing 的概念是 C# 型別系統統一檢視的基礎,其中可將任何型別的值視為物件。
在下列範例中,會以「Box」處理整數變數 i,然後將此變數指派給物件 o。
int i = 123;
// The following line boxes i.
object o = i;
物件 o 接著即可經 Unbox 處理,並指派給整數變數 i:
o = 123;
i = (int)o; // unboxing
全站熱搜
留言列表