Evaluar y enviar comentarios
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Guía de programación de C#
Conversión boxing (Guía de programación de C#)

La conversión boxing se utiliza para almacenar tipos de valor en el montón de recolección de elementos no utilizados. Boxing es una conversión implícita de Tipos de valores (Referencia de C#) al tipo object o a cualquier tipo de interfaz implementado por este tipo de valor. Al aplicar la conversión boxing a un tipo de valor se asigna una instancia de objeto en el montón y copia el valor en el nuevo objeto.

Considere la siguiente declaración de una variable de tipo de valor:

C#
int i = 123;

La siguiente instrucción aplica implícitamente la operación de boxing sobre la variable i:

C#
object o = i;  // implicit boxing

El resultado de esta instrucción es crear una referencia de objeto o en la pila que hace referencia a un valor del tipo int en el montón. Este valor es una copia del valor del tipo de valor asignado a la variable i. La diferencia entre las dos variables, i y o, se muestra en la siguiente ilustración.

Conversión Boxing


Gráfico BoxingConversion

También es posible realizar la conversión boxing de manera explícita, tal como se muestra en el ejemplo siguiente, pero ésta nunca es necesaria:

C#
int i = 123;
object o = (object)i;  // explicit boxing

Ejemplo

Este ejemplo convierte una variable de entero i a un objeto o mediante conversión boxing. A continuación, el valor almacenado en la variable i se cambia de 123 a 456. El ejemplo muestra que el tipo de valor original y el objeto empaquetado usan ubicaciones de memoria independientes y, por consiguiente, pueden almacenar valores diferentes.

C#
class TestBoxing
{
    static void Main()
    {
        int i = 123;
        object o = i;  // implicit boxing

        i = 456;  // change the contents of i

        System.Console.WriteLine("The value-type value = {0}", i);
        System.Console.WriteLine("The object-type value = {0}", o);
    }
}

Resultados

The value-type value = 456

The object-type value = 123

Especificación del lenguaje C#

Para obtener más información, vea las siguientes secciones de Especificación del lenguaje C#:

  • 4.3.1 Conversiones boxing

Vea también

Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker