當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# Boxing和Unboxing的區別用法及代碼示例


裝箱和拆箱是 C# 中的一個重要概念。 C# 類型係統包含三種數據類型:值類型(int、char 等)、引用類型(對象)和指針類型。本質上,它將值類型轉換為引用類型,反之亦然。裝箱和拆箱支持類型係統的統一視圖,其中任何類型的值都可以被視為對象。

拳擊 拆箱
它將值類型轉換為對象類型。 它將對象類型轉換為值類型。
裝箱是一個隱式轉換過程。 拆箱是顯式轉換過程。
這裏,存儲在堆棧上的值複製到存儲在堆內存上的對象。 這裏,存儲在堆內存上的對象複製到存儲在堆棧上的值。
例子:

// C# program to illustrate Boxing 
using System; 
  
public class GFG { 
    static public void Main() 
    { 
        int val = 2019; 
  
        // Boxing 
        object o = val; 
  
        // Change the value of val 
        val = 2000; 
  
        Console.WriteLine("Value type of val is {0}", val); 
        Console.WriteLine("Object type of val is {0}", o); 
    } 
} 

輸出:

Value type of val is 2000
Object type of val is 2019
例子:

// C# program to illustrate Unboxing 
using System; 
  
public class GFG { 
    static public void Main() 
    { 
        int val = 2019; 
  
        // Boxing 
        object o = val; 
  
        // Unboxing 
        int x = (int)o; 
  
        Console.WriteLine("Value of o is {0}", o); 
        Console.WriteLine("Value of x is {0}", x); 
    } 
} 

輸出:

Value of o is 2019
Value of x is 2019


相關用法


注:本文由純淨天空篩選整理自ankita_saini大神的英文原創作品 Difference between Boxing and Unboxing in C#。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。