当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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#。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。