Conversão de tipo C#
Conversão de tipo C#
Neste tutorial, aprenderemos sobre a conversão de tipo C# e seus tipos com a ajuda de exemplos.
O processo de conversão do valor de um tipo (int, float, double, etc.) para outro tipo é conhecido como conversão de tipo.
Em C#, existem dois tipos básicos de conversão de tipo:
- Conversões de tipo implícitas
- Conversões de tipo explícitas
1. Conversão de tipo implícita em C#
Na conversão de tipo implícito, o compilador C# converte automaticamente um tipo em outro.
Geralmente, tipos menores como
int
(com menos tamanho de memória) são convertidos automaticamente para tipos maiores, como double
(tendo maior tamanho de memória). Exemplo:conversão implícita de tipo
using System;
namespace MyApplication {
class Program {
static void Main(string[] args) {
int numInt = 500;
// get type of numInt
Type n = numInt.GetType();
// Implicit Conversion
double numDouble = numInt;
// get type of numDouble
Type n1 = numDouble.GetType();
// Value before conversion
Console.WriteLine("numInt value: "+numInt);
Console.WriteLine("numInt Type: " + n);
// Value after conversion
Console.WriteLine("numDouble value: "+numDouble);
Console.WriteLine("numDouble Type: " + n1);
Console.ReadLine();
}
}
}
Saída
numInt value: 500 numInt Type: System.Int32 numDouble value: 500 numDouble Type: System.Double
No exemplo acima, criamos um
int
tipo de variável chamada numInt . Observe a linha,
// Implicit Conversion
double numDouble = numInt;
Aqui, estamos atribuindo o
int
tipo variável para um double
variável de tipo. Nesse caso, o compilador C# converte automaticamente o int
digite o valor para double
. Observe que usamos o
GetType()
método para verificar o tipo de numInt
e numDouble
variáveis. Observação :na conversão de tipo implícita, os tipos menores são convertidos em tipos maiores. Portanto, não há perda de dados durante a conversão.
2. Conversão de tipo explícito em C#
Na conversão de tipo explícito, convertemos explicitamente um tipo em outro.
Geralmente, tipos maiores como
double
(com grande tamanho de memória) são convertidos para tipos menores como int
(com pequeno tamanho de memória). Exemplo:conversão explícita de tipo
using System;
namespace MyApplication {
class Program {
static void Main(string[] args) {
double numDouble = 1.23;
// Explicit casting
int numInt = (int) numDouble;
// Value before conversion
Console.WriteLine("Original double Value: "+numDouble);
// Value before conversion
Console.WriteLine("Converted int Value: "+numInt);
Console.ReadLine();
}
}
}
Saída
Original double value: 1.23 Converted int value: 1
No exemplo acima, criamos um
double
variável chamada numDouble . Observe a linha,
// Explicit casting
int numInt = (int) numDouble;
Aqui,
(int)
é uma expressão de conversão que converte explicitamente o double
digite para int
modelo. Podemos ver que o valor original é 1,23 enquanto o valor convertido é 1 . Aqui, alguns dados são perdidos durante a conversão de tipo. Isso ocorre porque estamos convertendo explicitamente o tipo de dados maior
double
para um tipo menor int
. Observação :A conversão de tipo explícita também é chamada de conversão de tipo.
Conversão de tipo C# usando Parse()
Em C#, também podemos usar o
Parse()
método para realizar a conversão de tipo. Geralmente, ao realizar a conversão de tipo entre tipos não compatíveis como
int
e string
, usamos Parse()
. Exemplo:conversão de tipo usando Parse()
using System;
namespace Conversion {
class Program {
static void Main(string[] args) {
string n = "100";
// converting string to int type
int a = int.Parse(n);
Console.WriteLine("Original string value: "+n);
Console.WriteLine("Converted int value: "+a);
Console.ReadLine();
}
}
}
Saída
Original string value: 100 Converted int value: 100
No exemplo acima, convertemos um
string
digite para um int
modelo.
// converting string to int type
int a = int.Parse(n);
Aqui, o
Parse()
O método converte a string numérica 100 para um valor inteiro. Observação :Não podemos usar
Parse()
para converter uma string textual como "test" para um int
. Por exemplo,
String str = "test";
int a = int.Parse(str); // Error Code
Conversão de tipo C# usando classe de conversão
Em C#, podemos usar o
Convert
class para realizar a conversão de tipo. O Convert
classe fornece vários métodos para converter um tipo para outro. Método | Descrição |
ToBoolean() | converte um tipo em um Boolean valor |
ToChar() | converte um tipo para um char tipo |
ToDouble() | converte um tipo para um double tipo |
ToInt16() | converte um tipo para um int de 16 bits tipo |
ToString() | converte um tipo para um string |
Vejamos alguns exemplos:
Exemplo:Converter int em String e Double
using System;
using System;
namespace Conversion {
class Program {
static void Main(string[] args) {
// create int variable
int num = 100;
Console.WriteLine("int value: " + num);
// convert int to string
string str = Convert.ToString(num);
Console.WriteLine("string value: " + str);
// convert int to Double
Double doubleNum = Convert.ToDouble(num);
Console.WriteLine("Double value: " + doubleNum);
Console.ReadLine();
}
}
}
Saída
int value: 100 string value: 100 Double value: 100
No exemplo acima,
- Convert.ToString(a) - converte um
int
digite num parastring
- Convert.ToDouble(a) - converte num para o
Double
tipo
Exemplo:Converter string para Double e vice-versa
using System;
namespace Conversion {
class Program {
static void Main(string[] args) {
// create string variable
string str = "99.99";
Console.WriteLine("Original string value: " + str);
// convert string to double
Double newDouble = Convert.ToDouble(str);
Console.WriteLine("Converted Double value: " + newDouble);
// create double variable
double num = 88.9;
Console.WriteLine("Original double value: " + num);
// converting double to string
string newString = Convert.ToString(num);
Console.WriteLine("Converted string value: " + newString);
Console.ReadLine();
}
}
}
Saída
Original string value: 99.99 Converted Double value: 99.99 Original double value: 88.9 Converted string value: 88.9
No exemplo acima,
- Convert.ToDouble(str) - converte um
string
digite str paraDouble
- Convert.ToString(num) - converte um
double
digite num para ostring
Exemplo 3:converter int em booleano
using System;
namespace Conversion {
class Program {
static void Main(string[] args) {
// create int variables
int num1 = 0;
int num2 = 1;
// convert int to Boolean
Boolean bool1 = Convert.ToBoolean(num1);
Boolean bool2 = Convert.ToBoolean(num2);
Console.WriteLine("Boolean value of 0 is: " + bool1);
Console.WriteLine("Boolean value of 1 is: " + bool2);
Console.ReadLine();
}
}
}
Saída
Boolean value of 0 is: False Boolean value of 1 is: True
No exemplo acima, criamos duas variáveis inteiras:
num1
e num2
com valores 0 e 1 respectivamente. Aqui, - Convert.ToBoolean(num1) - converte 0 para um
Boolean
valorFalse
- Convert.ToBoolean(num2) - converte 1 para um
Boolean
valorTrue
Observação :Em C#, o valor inteiro 0 é considerado
False
e todos os outros valores são considerados True
. Linguagem C