Conhecendo C# - Tipos - Parte 4
Conhecendo C# - Tipos - Parte 4
Conversões Explícitas
Quando uma variável pode ser mais de 1 tipo, o recurso de cast poderá ser utilizado para decidir ou transformar para o tipo desejado.
Cast é uma operação que “extrai” o valor de um determinado tipo para outro, podendo ser resolvido em tempo de compilação ou tempo de execução. O valor obtido é uma representação do valor original, que permanece intacto nessa operação. Este recurso é muito comum em C#, principalmente em técnicas como boxing e unboxing.
//extraindo um valor int de long |
Nos exemplos acima a operação de cast é efetuada nas últimas linhas, onde extrai-se um valor inteiro(int) de um inteiro longo(long). O que deve ser levado em consideração, tanto para as conversões implícitas quanto para as explícitas, é a faixa de dados, pois o int não comporta o grupo long totalmente(vide Faixa de Dados na tabela 1), porém o inverso é verdadeiro. Se essa faixa “estourar” o valor obtido não será consistente. Porém este tipo de operação é válida e amplamente utilizada. Por exemplo:
class Casts{ |
Para compilar o exemplo acima, no prompt, digite csc Casts.cs. Execute o programa digitando Casts. A Figura 2, mostra compilação e execução da aplicação em C#.
Figura 2: Compilação e Execução do exemplo Casts
A tabela 3 ajudará no suporte há conversões númericas explícitas.
Tabela 3: Conversões Númericas Explícitas suportadas
De | Para |
byte | sbyte ou char |
char | sbyte, byte ou short |
decimal | sbyte, byte, short, ushort, int, uint, long, ulong, char, float ou double |
double | sbyte, byte, short, ushort, int, uint, long, ulong, char, float ou decimal |
float | sbyte, byte, short, ushort, int, uint, long, ulong, char ou decimal |
int | sbyte, byte, short, ushort, uint, ulong ou char |
Long | sbyte, byte, short, ushort, int, uint, ulong ou char |
sbyte | byte, ushort, uint, ulong ou char |
short | sbyte, byte, ushort, uint, ulong ou char |
uint | sbyte, byte, short, ushort, int ou char |
ulong | sbyte, byte, short, ushort, int, uint, long ou char |
ushort | sbyte, byte, short ou char |
2 comentários:
Ola,
isso nao é bem um comentario e sim uma pergunta, estou tentando fazer um codigo onde eu capte do teclado um numero inteiro e depois ele me exiba o caractere ASCII de referencia ao numero digitado.
Sei q tenho q fazer um cast, mais ta fd !
alguem manja ?
using System;
class Caractere
{
static void Main()
{
int recebe;
char aux;
Console.WriteLine("Digite um Numero:");
recebe = Console.ReadLine();
aux = (char)recebe;
Console.WriteLine(aux);
}
}
Att. Marcos Felipe
mhulk@hotmail.com
Marcos, oq exatamente está acontecendo?
Postar um comentário