toboolean parse convert bool c# parsing boolean

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.