Udemy

C# boxing y unboxing

C# boxing y unboxing


El sistema de tipos de C# contiene tres tipos, son tipos de valores, tipos de referencia y tipos de punteros. C # nos permite convertir un tipo de valor en un tipo de referencia y volver a los tipos de valores. La operación de Convertir un Tipo de Valor a un Tipo de Referencia se llama Boxeo y la operación inversa se llama Unboxing.

Boxing
  1: int Val = 1;
  2: Object Obj = Val; //Boxing




En la primera línea, creamos un tipo valor con el nombre Val y le asignamos un valor a Val. La segunda línea, creamos una instancia de Object Obj y asignamos el valor de Val a Obj. De la operación anterior (Object Obj = i) vimos convertir un valor de un tipo de valor en un valor de un tipo de referencia correspondiente. Este tipo de operación se llama Boxeo.

UnBoxing
  1: int Val = 1;
  2: Object Obj = Val; //Boxing
  3: int i = (int)Obj; //Unboxing

Las dos primeras líneas muestran cómo encapsular un tipo de valor. La siguiente línea (int i = (int) Obj) muestra extractos del Tipo de valor del Objeto. Eso es convertir un valor de un tipo de referencia en un valor de un tipo de valor. Esta operación se llama UnBoxing.



Boxeo y UnBoxing son procesos computacionalmente costosos. Cuando se encuadra un tipo de valor, se debe asignar y construir un objeto completamente nuevo, también el molde requerido para UnBoxing también es costoso computacionalmente.




No hay comentarios.