Difference between Boxing and Unboxing in C#
Last Updated :
17 Apr, 2019
Boxing and unboxing is an important concept in C#. C# Type System contains three data types: Value Types (int, char, etc), Reference Types (object) and Pointer Types. Basically, it converts a Value Type to a Reference Type, and vice versa. Boxing and Unboxing enables a unified view of the type system in which a value of any type can be treated as an object.
Boxing |
Unboxing |
It convert value type into an object type. |
It convert an object type into value type. |
Boxing is an implicit conversion process. |
Unboxing is the explicit conversion process. |
Here, the value stored on the stack copied to the object stored on the heap memory. |
Here, the object stored on the heap memory copied to the value stored on the stack . |
Example:
using System;
public class GFG {
static public void Main()
{
int val = 2019;
object o = val;
val = 2000;
Console.WriteLine( "Value type of val is {0}" , val);
Console.WriteLine( "Object type of val is {0}" , o);
}
}
|
Output:
Value type of val is 2000
Object type of val is 2019
|
Example:
using System;
public class GFG {
static public void Main()
{
int val = 2019;
object o = val;
int x = ( int )o;
Console.WriteLine( "Value of o is {0}" , o);
Console.WriteLine( "Value of x is {0}" , x);
}
}
|
Output:
Value of o is 2019
Value of x is 2019
|
Share your thoughts in the comments
Please Login to comment...