parse - convert.toboolean c#
¿Cuál es la diferencia entre Convert.ToBoolean(cadena) y Boolean.Parse(cadena)? (3)
¿Cuál es la diferencia entre los dos métodos?
Convert.ToBoolean()
y
Boolean.Parse()
?
¿Hay alguna razón para usar uno u otro?
Además, ¿hay algún otro type.Parse()
métodos type.Parse()
que deba tener en cuenta?
Gracias,
Mate
Aquí está la breve demostración:
object ex1 = "True";
Console.WriteLine(Convert.ToBoolean(ex1)); // True
Console.WriteLine(bool.Parse(ex1.ToString())); // True
object ex2 = "true";
Console.WriteLine(Convert.ToBoolean(ex2)); // True
Console.WriteLine(bool.Parse(ex2.ToString())); // True
object ex3 = 1;
Console.WriteLine(Convert.ToBoolean(ex3)); // True
Console.WriteLine(bool.Parse(ex3.ToString())); // Unhandled Exception: System.FormatException
object ex3 = "1";
Console.WriteLine(Convert.ToBoolean(ex3)); // An unhandled exception of type ''System.FormatException'' occurred
Console.WriteLine(bool.Parse(ex3.ToString())); // Unhandled Exception: System.FormatException
object ex4 = "False";
Console.WriteLine(Convert.ToBoolean(ex4)); // False
Console.WriteLine(bool.Parse(ex4.ToString())); // False
object ex5 = "false";
Console.WriteLine(Convert.ToBoolean(ex5)); // False
Console.WriteLine(bool.Parse(ex5.ToString())); // False
object ex6 = 0;
Console.WriteLine(Convert.ToBoolean(ex6)); // False
Console.WriteLine(bool.Parse(ex6.ToString())); // Unhandled Exception: System.FormatException
object ex7 = null;
Console.WriteLine(Convert.ToBoolean(ex7)); // False
Console.WriteLine(bool.Parse(ex7.ToString())); // Unhandled Exception: System.NullReferenceException
Nota: También hay dos propiedades de bool TrueString y FalseString, pero tenga cuidado, porque bool.TrueString! = "True", solo bool.TrueString == "True"
Console.WriteLine(bool.TrueString); // True
Console.WriteLine(bool.FalseString); // False
Boolean.Parse()
convertirá una representación de cadena de un valor lógico booleano en un valor booleano. Convert.ToBoolean()
tiene múltiples overloads que convertirán tipos primitivos a su equivalente booleano.
La mayoría, si no todos, de los tipos primitivos en C # tienen un método asociado * .Parse / Convert.To * que cumple la misma función que Boolean.Parse()/Convert.ToBoolean()
.
Convert.ToBoolean(string)
realidad llama a bool.Parse()
todos modos, por lo que para string
s no nula, no hay diferencia funcional. (Para string
s nula, Convert.ToBoolean()
devuelve false
, mientras que bool.Parse()
arroja una ArgumentNullException
.)
Dado ese hecho, debe usar bool.Parse()
cuando esté seguro de que su entrada no es nula, ya que se ahorra un cheque nulo.
Convert.ToBoolean()
tiene, por supuesto, varias otras sobrecargas que le permiten generar un bool
partir de muchos otros tipos incorporados, mientras que Parse()
es solo para string
.
En términos de los métodos type.Parse () que debe tener en cuenta, todos los tipos numéricos incorporados tienen métodos Parse()
y TryParse()
. DateTime
tiene esos, así como los ParseExact()
adicionales ParseExact()
/ TryParseExact()
, que le permiten especificar un formato esperado para la fecha.