Parse
O método Parse é uma funcionalidade estática presente na maioria dos tipos de valor do C# (como int, double, bool, DateTime, etc.). Sua função específica é converter a representação em string de um valor em uma instância real daquele tipo.
É a ferramenta ideal quando você tem um texto e precisa que ele se torne um tipo de dado funcional.
O Risco do Parse: Exceções
O método Parse é otimista: ele assume que a conversão será bem-sucedida. Se a string de entrada não estiver em um formato válido ou for nula, ele lançará uma exceção, interrompendo o fluxo normal do programa.
FormatException: A string não corresponde ao formato esperado.ArgumentNullException: A string fornecida énull.OverflowException: O número na string é grande ou pequeno demais para o tipo de destino.
Para usar Parse de forma segura, você deve envolvê-lo em um bloco try-catch:
A Alternativa Segura e Eficiente: TryParse
Lançar e capturar exceções é um processo computacionalmente caro. Para cenários de validação (como processar input de um usuário), onde uma falha de conversão é um evento esperado, o C# oferece uma alternativa muito mais eficiente: o padrão TryParse.
O método TryParse tenta realizar a conversão e, em vez de lançar uma exceção, ele retorna um bool que indica se a operação foi bem-sucedida. O valor convertido é retornado através de um parâmetro out.
Por que TryParse é melhor?
Performance: Evita o alto custo de criar e gerenciar exceções.
Clareza: O código fica mais limpo e a intenção (validar e converter) é mais clara.
Simplicidade: Permite a validação e a atribuição em uma única linha dentro de uma condição
if.
Tabela de Referência de Métodos Parse e TryParse
Abaixo está uma tabela de referência para os métodos Parse e TryParse nos tipos mais comuns.
Tipo | Método | Método |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tópico Avançado: Sensibilidade à Cultura
Um detalhe crucial que diferencia um desenvolvedor sênior é o entendimento sobre cultura (CultureInfo). O método Parse por padrão utiliza as regras de formatação do sistema operacional onde o código está rodando.
Isso pode causar bugs difíceis de rastrear. Por exemplo, a string "1,234.56" representa mil duzentos e trinta e quatro em português, mas em inglês o . é o separador decimal.
O TryParse também possui sobrecargas que aceitam CultureInfo para uma conversão segura e culturalmente correta.
Guia de Decisão: Parse vs. TryParse
Use
Parsequando:Você tem 100% de certeza que a string é válida (ex: vem de uma fonte interna confiável, como um valor fixo no código ou um banco de dados com dados já validados).
Uma falha na conversão representa um erro excepcional e inesperado no seu sistema.
Use
TryParsequando:A string vem de uma fonte externa e não confiável (input de usuário, arquivo de texto, resposta de API, etc.).
A falha na conversão é um cenário esperado e faz parte da lógica de validação do seu programa.