A classe Convert e análise
Analise e converta com Convert e TryParse.
A classe Convert e análise é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.
Convertendo cadeias de caracteres em números
A entrada do usuário chega como texto. Para fazer cálculos com ela, você precisa converter cadeias de caracteres em números. C# oferece Convert, Parse e TryParse.
using System;
class Program
{
static void Main()
{
string input = "42";
int number = int.Parse(input);
Console.WriteLine(number + 8);
}
}int.Parse
int.Parse transforma uma cadeia de caracteres numérica em um int. Ele gera um FormatException se o texto não for um número válido.
using System;
class Program
{
static void Main()
{
try
{
int n = int.Parse("abc");
Console.WriteLine(n);
}
catch (FormatException)
{
Console.WriteLine("Not a valid number");
}
}
}int.TryParse
int.TryParse evita exceções: retorna true em caso de sucesso e coloca o resultado em um parâmetro out, ou retorna false em caso de falha.
using System;
class Program
{
static void Main()
{
if (int.TryParse("123", out int n))
Console.WriteLine("Parsed: " + n);
else
Console.WriteLine("Failed");
}
}TryParse para entradas seguras
TryParse é a forma preferida de lidar com entradas não confiáveis, porque o texto inválido é tratado de maneira adequada em vez de causar uma falha do programa.
using System;
class Program
{
static void Main()
{
string[] inputs = { "10", "oops", "30" };
int total = 0;
foreach (var s in inputs)
{
if (int.TryParse(s, out int v))
total += v;
}
Console.WriteLine("Total of valid: " + total);
}
}A classe Converter
A classe Convert converte entre muitos tipos básicos: Convert.ToInt32, Convert.ToDouble, Convert.ToBoolean e outros.
using System;
class Program
{
static void Main()
{
int i = Convert.ToInt32("256");
double d = Convert.ToDouble("3.14");
bool b = Convert.ToBoolean("true");
Console.WriteLine(i + ", " + d + ", " + b);
}
}Convert lida com nulo
Ao contrário de int.Parse, Convert.ToInt32(null) retorna 0 em vez de gerar um erro, o que pode ser conveniente ou surpreendente.
using System;
class Program
{
static void Main()
{
string s = null;
int n = Convert.ToInt32(s); // returns 0
Console.WriteLine("Result: " + n);
}
}Convertendo entre tipos numéricos
Convert também transforma um tipo numérico em outro e arredonda, em vez de truncar, ao converter valores de ponto flutuante em inteiros.
using System;
class Program
{
static void Main()
{
double d = 7.6;
int cast = (int)d; // truncates -> 7
int converted = Convert.ToInt32(d); // rounds -> 8
Console.WriteLine("cast=" + cast + ", convert=" + converted);
}
}Analisando outros tipos
A maioria dos tipos integrados tem seu próprio Parse/TryParse: double.TryParse, bool.TryParse, DateTime.TryParse e assim por diante.
using System;
class Program
{
static void Main()
{
bool okD = double.TryParse("2.5", out double d);
bool okB = bool.TryParse("True", out bool flag);
Console.WriteLine(okD + ":" + d + ", " + okB + ":" + flag);
}
}ToString para fazer o inverso
Para transformar um número novamente em texto, chame ToString(), opcionalmente com uma cadeia de caracteres de formato.
using System;
class Program
{
static void Main()
{
int n = 255;
double price = 12.5;
Console.WriteLine(n.ToString());
Console.WriteLine(price.ToString("C")); // currency format
}
}Escolhendo a ferramenta certa
Use TryParse para entradas do usuário nas quais você não pode confiar, Parse quando a entrada tiver validade garantida e Convert ao lidar com valores nulos ou converter entre muitos tipos.
using System;
class Program
{
static void Main()
{
string userInput = "55x";
int value = int.TryParse(userInput, out int v) ? v : -1;
Console.WriteLine(value == -1 ? "Invalid input" : "Got " + value);
}
}Colocando tudo em conjunto
Um fluxo robusto de entrada valida os dados com TryParse, usa um valor padrão em caso de falha e depois faz os cálculos com segurança.
using System;
class Program
{
static int ReadAge(string input)
{
if (int.TryParse(input, out int age) && age >= 0)
return age;
return 0; // safe default
}
static void Main()
{
Console.WriteLine("Age: " + ReadAge("28"));
Console.WriteLine("Age: " + ReadAge("bad"));
}
}Verificação rápida
Teste sua compreensão sobre análise e conversão.
Recapitulação
Converta texto em números com int.Parse (gera um erro com entradas inválidas), int.TryParse (é seguro e retorna um booleano e um valor out) ou a classe Convert (lida com valores nulos, arredonda números de ponto flutuante e converte muitos tipos). Prefira TryParse para entradas não confiáveis e ToString() para fazer a conversão no sentido inverso.
using System;
class Program
{
static void Main()
{
if (int.TryParse("99", out int n))
Console.WriteLine("Value: " + n);
Console.WriteLine("Convert: " + Convert.ToInt32("7"));
}
}Aprenda C# com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 93
- Aulas
- 346
Perguntas Frequentes
A aula “A classe Convert e análise” é grátis?
Sim — o texto completo de “A classe Convert e análise” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.
O que vou aprender em “A classe Convert e análise”?
Analise e converta com Convert e TryParse. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “A classe Convert e análise”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Tipos de valor versus tipos de referência
- Boxing e unboxing
- Conversões implícitas e explícitas
- A classe Convert e análise