Desenvolvimento - C#

Conversão de Tipos - Convert x Parse

Esse artigo tem o objetivo de comparar a utilização dos métodos Convert e Parse, comuns aos tipos do .NET Framework.

por Caique Dourado



Esse artigo tem o objetivo de comparar a utilização dos métodos Convert e Parse, comuns aos tipos do .NET Framework. A maioria dos desenvolvedores costuma utilizar o Convert. Eu também não fujo a regra.

Utilizaremos um utilitário para realizar a reflexão nos métodos e comparar as diferenças entre os dois. Segue como dica o Reflector.NET indicado pelo Eduardo Miranda na 5° edição da revista Mundo.net.

Vamos tomar como exemplo a conversão de uma String em um objeto do tipo Int32. Para realizar a conversão poderemos utilizar Convert.ToInt32 ou Int32.Parse. Confira as imagens abaixo:

Convert.ToInt32

Int32.Parse

Repare que ao utilizar o "Convert" o valor é testado e logo após é passado para o método "Parse".

if (value == null)  
{
 return 0;  
}  
return int.Parse(value, CultureInfo.CurrentCulture);  

O teste acontece para assegurar que o parâmetro não receba null e uma exceção seja disparada. Se o parâmetro for nulo a função retorna 0 (zero) se não, passa o parâmetro para o método Parse.

Você deve estar se perguntando; Se ao utilizar o Convert o método Parse também é chamado, seria melhor utilizar logo o Parse, não? O Parse de fato é mais rápido, pois não testa antes se o valor é nulo. É claro que se assegurarmos que o parâmetro nunca receba null será desnecessário utilizar o Convert pois um if a mais estará sendo executado.

A mesma regra vale para a conversão de outros tipos do .NET como Char, String, bool…

Caique Dourado

Caique Dourado