Diferencia entre Boxing y Unboxing en C#

Boxing y unboxing es un concepto importante en C#. C# Type System contiene tres tipos de datos: tipos de valor (int, char, etc.) , tipos de referencia (objeto) y tipos de puntero . Básicamente, convierte un tipo de valor en un tipo de referencia y viceversa. Boxing and Unboxing permite una vista unificada del sistema de tipos en el que un valor de cualquier tipo se puede tratar como un objeto.

Boxeo Desembalaje
Convierte el tipo de valor en un tipo de objeto. Convierte un tipo de objeto en un tipo de valor.
El boxeo es un proceso de conversión implícito. Unboxing es el proceso de conversión explícito.
Aquí, el valor almacenado en la pila se copia al objeto almacenado en la memoria del montón. Aquí, el objeto almacenado en la memoria del montón copiado al valor almacenado en la pila.
Ejemplo:

// 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);
    }
}

Producción:

Value type of val is 2000
Object type of val is 2019
Ejemplo:

// 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);
    }
}

Producción:

Value of o is 2019
Value of x is 2019

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *