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 DouradoUtilizaremos 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…