Boxing and unboxing is a central concept in C#’s type system. It provides a binding link between value-types and reference-types by permitting any value of a value-type to be converted to and from type object
. Boxing and unboxing enables a unified view of the type system wherein a value of any type can ultimately be treated as an object.