Existem dois tipos de conversões predefinidas, seguem a seguir:

  • Implícita (ou automática): Feita automaticamente pelo compilador, desde que seja segura.
  • Explícita: Feita pelo próprio programador forçando a conversão de um tipo para outro, utilizando type cast.

Vejamos um exemplo de conversão implícita, do tipo tipo int para long:

int xInt = 27;
long xLong = xInt;

Console.WriteLine("xInt = " + xInt);
Console.WriteLine("xLong = " + xLong);

/*
Saída:
xInt = 27
xLong = 27
*/

Mas afinal o que é Type Cast?

Consiste em forçar a conversão do tipo de uma determinada variável em outro. Utilizado nos casos em que não existe a conversão automática (implícita).

Vejamos um exemplo de conversão explícita, do tipo int para short: (inválida)

int xInt = 88910;
short xShort = (short)xInt; // utilizando o type cast

Console.WriteLine("xInt = " + xInt);
Console.WriteLine("xShort = " + xShort);

/*
Saída:
A conversão foi realizada só que o tipo de informação armazenada 
na conversão não é válido com a informação do tipo anterior.

xInt = 88910
xShort = 23374 (Valor não válido)
*/

Vejamos agora um exemplo de conversão explícita, do tipo int para short: (válida)
int xInt = 1988;
short xShort = (short)xInt; // utilizando o type cast

Console.WriteLine("xInt = " + xInt);
Console.WriteLine("xShort = " + xShort);

/*
Saída:
xInt = 1988
xShort = 1988
*/

Atenção: Conversões dos tipos int, uint e long para o tipo float e do tipo long para double pode ocorrer perda de precisão.

Será publicada no blog uma tabela com as conversões implícitas e explícitas.