Todas las funciones Convert.ToX
que aceptan un argumento de tipo string
finalmente llaman al método Parse
del tipo de datos apropiado de todos modos.
Por ejemplo, Convert.ToInt32(string)
se ve algo como esto:
public static int ToInt32(string value)
{
if (value == null)
{
return 0;
}
return int.Parse(value, CultureInfo.CurrentCulture);
}
Lo mismo para todos los demás métodos de conversión numéricas, incluyendo Decimal
y DateTime
. Así que es bastante irrelevante cuál usas; el resultado (y la velocidad) serán los mismos en ambos casos.
Realmente, la única diferencia es la cláusula de guardia if (value == null)
al principio. Si eso es conveniente o no depende del caso de uso específico. Generalmente, si sabe que tiene un objeto no nulo string
, también podría usar Parse
. Si no está seguro, ConvertToX
es una apuesta más segura, ya que requiere menos código de verificación nula en línea.
No puedo decírtelo, pero puedo decirte cómo averiguarlo ... Abre ILDasm y abre el dll con todas las clases (lleva un poco de búsqueda) a continuación, puedes ver el código IL que utilizar. No es realmente legible, pero puedes ver lo que está llamando y verificar si en las llamadas que. – Matt
O simplemente use ILSpy para ver el código C# en lugar de las instrucciones IL ... –
posible duplicado de [La diferencia entre convertir y analizar.] (Http://stackoverflow.com/questions/3486810/the-difference-between-convert- y-analizar) –