300x250 AD TOP

helooo
Tagged under:

Boxing and unboxing


C# Type System contains three Types , they are Value Types , Reference Types and Pointer Types.
C# allows us to convert a Value Type to a Reference Type, and back again to Value Types .

"The operation of Converting a Value Type to a Reference Type is called Boxing and the reverse operation is called Unboxing".

Boxing

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



The first line we created a Value Type Val and assigned a value to Val. The second line , we created an instance of Object Obj and assign the value of Val to Obj. From the above operation (Object Obj = i ) we saw converting a value of a Value Type into a value of a corresponding
 Reference Type . These types of operation is called Boxing.
UnBoxing


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






The first two line shows how to Box a Value Type . The next line (int i = (int) Obj) shows extracts the Value Type from the Object . That is converting a value of a Reference Type into a value of a Value Type. This operation is called UnBoxing.
Boxing and UnBoxing are computationally expensive processes. When a value type is boxed, an entirely new object must be allocated and constructed , also the cast required for UnBoxing is also expensive computationally.