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.
Deixe um comentário