Convert.ToBoolean(string)
realmente llama bool.Parse()
de todos modos, por lo que para string
s no nulos, no hay diferencia funcional. (Para nulos string
s, Convert.ToBoolean()
devuelve false
, mientras que bool.Parse()
lanza una ArgumentNullException
.)
Teniendo en cuenta este hecho, se debe utilizar bool.Parse()
cuando esté seguro de que su entrada no es nula, ya que se ahorrará un cheque nulo.
Convert.ToBoolean()
, por supuesto, tiene un número de otras sobrecargas que le permiten generar un bool
de muchos otros tipos incorporados, mientras que Parse()
es sólo para string
s.
En términos de métodos type.Parse() que debe tener en cuenta, todos los tipos numéricos incorporados tienen Parse()
así como los métodos TryParse()
. DateTime
tiene esos, así como los métodos adicionales ParseExact()
/TryParseExact()
, que le permiten especificar un formato esperado para la fecha.
FYI: El 'TryParse()' no es parte del Compact Framework. – jp2code
Gracias por los detalles. Entonces, ¿no hay diferencia en el rendimiento entre los dos, o podrías decir ganancias extremadamente pequeñas usando Boolean.Parse (string)? – mbrownnyc
@mbrownnyc Obtendrá una ganancia muy pequeña (probablemente imperceptible) utilizando 'Parse()' * si está seguro de que la entrada no es una cadena nula *. Si no está seguro, solo use 'ToBoolean()', ya que hará el control por usted. Y si no desea que una cadena nula resulte en falsa, realice la comprobación usted mismo, y luego llame a 'Parse()' si no es nulo. – dlev