Boxing is the process of converting a value type to the type object
When the CLR boxes a value type, it wraps the value inside a System.Object and stores it on the managed heap.
Unboxing extracts the value type from the object.
int i = 123; object o = (object)i; // boxingThe object
ocan then be unboxed and assigned to integer variable
o = 123; i = (int)o; // unboxing
Disadvantages of Boxing
Boxing and unboxing are computationally expensive processes. When a value type is boxed, an entirely new object must be created. This can take up to 20 times longer than an assignment. When unboxing, the casting process can take four times as long as an assignment.