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:
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());
|
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
Concordo em gênero, número e grau com você Lenilson!
Muito obrigado!
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,