Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Conversão de Tipos Básica | Lidando com Tipos de Dados
Noções Básicas de C#
course content

Conteúdo do Curso

Noções Básicas de C#

Noções Básicas de C#

1. Começando
2. Lidando com Tipos de Dados
3. Estruturas de Controle
4. Loops
5. Arrays
6. Métodos

book
Conversão de Tipos Básica

Type Casting é o processo de converter um valor de um tipo de dado para outro. O Type Casting geralmente é possível entre valores representados numericamente. Por exemplo, podemos converter um float para um int e um int para um float. No entanto, converter uma string para um int não faz sentido lógico e, portanto, não é possível.

Existem dois tipos de typecasting, a saber, Type Casting Implícito e Type Casting Explícito.

Type Casting Implícito é quando um valor é automaticamente convertido de um tipo para outro, quando necessário.

cs

main

copy
1234
int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double

Sempre que ocorre type casting implícito, é sempre de um tipo de dado menor para um maior. O tamanho de um tipo de dado é determinado por quantos bits de dados ele pode armazenar. Por exemplo, int pode armazenar 32 bits enquanto long pode armazenar 64 bits, portanto, a conversão implícita de int para long é possível. Da mesma forma, float para double também é possível.

Os tipos ordenados por seus tamanhos são listados do menor para o maior abaixo: char -> int -> long -> float -> double

Type Casting Explícito é quando o usuário menciona especificamente o novo tipo de dado de um valor para o qual ele deve ser convertido. O Type Casting Explícito é necessário quando queremos converter um valor de um tipo de dado maior para um menor, isso porque quase sempre há perda de dados ao converter um valor de um tipo de dado maior para um menor. Por exemplo, se convertermos o float 3.14 para um inteiro, ele dará 3 como resultado, portanto, perdemos alguns dados durante essa conversão. Portanto, o compilador precisa de um comando explícito do programador para realizar tal conversão.

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }

Para corrigir o erro no código acima, precisamos converter explicitamente val1 para um valor inteiro.

A sintaxe de um cast é (datatype) value, por exemplo (int) 3.1415. Então, neste caso, escreveremos (int) val1:

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
Quais das afirmações abaixo estão corretas?

Quais das afirmações abaixo estão corretas?

Selecione algumas respostas corretas

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 11
We're sorry to hear that something went wrong. What happened?
some-alt