De forma sucinta, com o boxing convertemos um valor de tipo de dado para um tipo object 
                de forma a termos uma referência e não mais um valor. Não há necessidade de utilizar 
                casting no boxing.
            
            Sintaxe
            object nome_objeto = valor; //primitivo, struct, enum
            Exemplo 4
            
using System;
public class Program
{
	public static void Main()
	{
		Object objeto = "uma string em C#";
		Console.WriteLine(objeto);
	}
}
            Saída
            um string em C#
            
                O unboxing é o processo inverso do boxing onde temos o valor e não mais uma referência. 
                No unboxing precisamos utilizar casting.
            
            Exemplo 5
            using System;
public class Program
{
	public static void Main()
	{
		Object objeto = "uma string em C#";
		string str = (string)objeto;
		Console.WriteLine(str);
	}
}
            Saída
            um string em C#
            
                Caso a operação de unboxing não possa ser realizada, um erro ou exceção InvalidCastExection será "lançada",]
                como pode ser visto na saída do exemplo 6 abaixo:
            
            Exemplo 6
            using System;
public class Program
{
	public static void Main()
	{
		Object objeto = "uma string em D Bemol";
		int str = (int)objeto;
	}
}
            Saída
            System.InvalidCastException: Unable to cast object of type 'System.String' to type 'System.Int32'