C
Diferença entre int.Parse() e Convert.ToInt()
Olá pessoal. Esses dias ocorreu essa dúvida e confesso que parei para ler a documentação e brincar. Apesar de “simples”, creio que tenha muito developer que acaba confundindo o uso ou achando que é “tudo a mesma coisa.
E já sendo bem direto, no funcionamento não temos nenhuma diferença. Eu disse no funcionamento. Onde a entrega do objetivo primário é “converter para inteiro”.
Se você tem uma string e você sabe que ela sempre será um número inteiro (por exemplo, se algum serviço web está te entregando um número inteiro em formato string), você pode usar oInt32.Parse().
Agora se você está recebendo dados de entrada enviados pelo usuário (um formulário web por exemplo), você deve usar o Int32.TryParse(), uma vez que este método permite um controle mais refinado da situação quando o usuário informa um valor inválido. Este controle fica claro quando é retornado 0 sempre que não há sucesso na conversão para inteiro (seja nulo, overflow, formato inválido, etc).
Já o Convert.ToInt32() recebe um objeto como argumento e invoca o método Int32.TryParse()quando ele descobre que o objeto recebido é uma string. Por isso que quando ele não consegue converter para inteiro ele retorna 0 e não lança o ArgumentNullException. Com isso vemos que o Convert.ToInt32() é provavelmente um pouquinho mais lento do que Int32.Parse() porque ele tem que verificar o seu tipo no argumento.
Ambiente de execução .NET
MSIL (Microsoft Intermediate Language), CLR (Common Language Runtime), CTS (Common Type System), CLS (Common Language Specification), BLC (Base Class Library), Metadados ou METADATAS, Assembly, PE (Portable Executable), Compilação JIT (Just in Time), VES (Virtual Execution System), GC (Garbage Collector).
Maquina virtual
Em uma linguagem de programação como C e