Empacotando valores (boxing e unboxing)
Veja nesta dica um exemplo de cast explicito usando boxing e unboxing.
Para que operações simples possam ser executadas entre diferentes tipos (armazenados por referência e por valor), os tipos por valor são ocultados como tipos de referência. Esse processo é chamado de empacotamento.
Veja:
Class Teste
{
Public static void Main( )
{
Int x = 33;
Objeto o = x; //Empacotamos o inteiro
Int y = (int) o; //Desempacotamos o inteiro
}
}