Programação em C# – Conversão de Tipos de Dados

Vamos tratar nesta lição da Conversão de Tipos de Dados em C#.

É possível converter um tipo de dados para outro tipo no C#. Podemos realizar conversão implícita de tipos (ou seja, o C# realiza a conversão de forma segura automaticamente) ou explícita (o programador utiliza funções pré-definidas – “cast”), ou ainda usar classes auxiliares.

Vamos ver um exemplo de conversão implícita:

int i = 10;
Console.WriteLine(“O número é “ + i);

O conteúdo da variável i, do tipo inteira, é convertida implicitamente para o tipo string ao passá-la como parâmetro para o método WriteLine da classe Console.

Você pode consultar todas as conversões implícitas permitidas na tabela abaixo:

De               Para
sbyte short, int, long, float, double, ou decimal
byte short, ushort, int, uint, long, ulong, float, double, ou decimal
short int, long, float, double, ou decimal
ushort int, uint, long, ulong, float, double, ou decimal
int long, float, double, ou decimal
uint long, ulong, float, double, ou decimal
long float, double, ou decimal
char ushort, int, uint, long, ulong, float, double, ou decimal
float double
ulong float, double, ou decimal

Métodos de Conversão de Tipos

Na tabela a seguir temos uma listagem de métodos que podemos utilizar para realizar conversão de tipos em C#:

Método Conversão Realizada
ToBoolean Converte um tipo em valor booleano, se possível
ToByte Converte um tipo em Byte.
ToChar Converte um tipo em caracter Unicode, se possível.
ToDecimal Converte um ponto-flutuante ou um inteiro em decimal.
ToDouble Converte um tipo em Double
ToInt16 Converte um tipo em inteiro de 16 bits.
ToInt32 Converte um tipo em inteiro de 32 bits.
ToInt64 Converte um tipo em inteiro de 64 bits.
ToString Converte um tipo em String.

Exemplo de conversão de tipos usando métodos:

int i = 90;
float f = 22.100f;
double d = 1450.33;
bool a = true;

Console.WriteLine(i.ToDouble());
Console.WriteLine(f.ToDecimal());
Console.WriteLine(d.ToInt16());
Console.WriteLine(a.ToString());

Conversão de Tipos com a classe Convert

A classe System.Convert permite converter um tipo base em outro tipo de dados base usando seus métodos.

Exemplo:

int x = 15
double y;
y = Convert.ToDouble(x);
Console.WriteLine(“Valor convertido: {0} do tipo {1}”, y, y.GetType());
Console.WriteLine(“Valor não convertido: {0} do tipo {1}”, x, x.GetType());

Podemos consultar outros métodos da classe System.Convert aqui.

Conversão de tipos explícita: Cast

Se uma conversão implícita não puder ser realizada sem o risco de perder informações, você pode realizar uma conversão explícita:

double w = 2300.67;
int x;
x = (int)w;
Console.WriteLine(x.ToString());

Podemos visualizar uma Tabela de Conversões Numéricas Explícitas Permitidas com cast na tabela abaixo:.

De Para
sbyte byte, ushort, uint, ulong, ou char
byte Sbyte ou char
short sbyte, byte, ushort, uint, ulong, ou char
ushort sbyte, byte, short, ou char
int sbyte, byte, short, ushort, uint, ulong, ou char
uint sbyte, byte, short, ushort, int, ou char
long sbyte, byte, short, ushort, int, uint, ulong, ou char
ulong sbyte, byte, short, ushort, int, uint, long, ou char
char sbyte, byte, ou short
float sbyte, byte, short, ushort, int, uint, long, ulong, char, ou decimal
double sbyte, byte, short, ushort, int, uint, long, ulong, char, float, ou decimal
decimal sbyte, byte, short, ushort, int, uint, long, ulong, char, float, ou double

Conversão de tipos – exemplo:

Rode o programa a seguir para testar as conversões de tipos apresentadas:

decimal salario;
int salario_arredondado;
Console.WriteLine(“Digite o Salário:”);
 
//Método de Conversões 01:
salario = Convert.ToDecimal(Console.ReadLine());
 
// Método de Conversões 02:
//salario = decimal.Parse(Console.ReadLine());
 
// Método de conversões 03:
salario_arredondado = (int)salario; // Cast; não funciona com conversão de string para decimal nem int.
Console.WriteLine(“O salário é {0}”, salario.ToString());
Console.WriteLine(“E o salário arredondado é {0}”, salario_arredondado.ToString());

 

Sobre Fábio dos Reis (1356 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

3 Comentários em Programação em C# – Conversão de Tipos de Dados

  1. Lenilson Amaral Barreto // 07/09/2016 em 21:43 // Responder

    Boa noite
    Eu sou auto didata, estou longe dos grandes centro, quando tenho dúvidas é a internete que me salva.
    Hoje cheguei em casa e procurei algo para ver na tv, nem a por assinatura agradava, me perguntei porque não termos cursos diversos nestes canais?
    Agora pesquisando por solução de problemas de programação de microcontroladores em C, achei este site. FANTASTICO
    SUCESSO

  2. Ola, estou inciando em C# e estou com uma duvida…
    Ainda sou beeeeeeeeeeeeeeem iniciante…
    Minha professore pediu para que as iniciais fossem Char…pois existe o resto do programa…
    Mas, estou colocando apenas a minha duvida…
    //char[] SalesPerson;
    SalesPerson = new char[6] { ‘D’, ‘d’, ‘F’, ‘f’, ‘e’, ‘E’ };

    Console.WriteLine(“Please enter the initial letter of your name or press ‘z’ or ‘Z’ to stop:”);
    SalesPerson = Console.ReadLine();//
    Como faco para que o Programa Leia String e transforme em char[].
    Quando coloco – SalesPerson = Console.ReadLine(); … o programa diz que nao pode, ja tentei Convert,Tochar…
    Obrigada desde ja,

Escreva um comentário

Seu e-mail não será divulgado


*