Quelle est la différence entre les deux méthodes
Convert.ToBoolean()
et
Boolean.Parse()
?
Y a-t-il une raison d'utiliser l'un ou l'autre?
De plus, y a-t-il d'autres méthodes type.Parse()
que je devrais surveiller?
Merci,
Mat
Quelle est la différence entre les deux méthodes
Convert.ToBoolean()
et
Boolean.Parse()
?
Y a-t-il une raison d'utiliser l'un ou l'autre?
De plus, y a-t-il d'autres méthodes type.Parse()
que je devrais surveiller?
Merci,
Mat
Convert.ToBoolean(string)
fait des appels bool.Parse()
de toute façon, donc pour les non-nulles string
s, il n'y a pas de différence fonctionnelle. (Pour les nuls string
s, Convert.ToBoolean()
retours false
, alors que bool.Parse()
jette un ArgumentNullException
.)
Compte tenu de ce fait, vous devez utiliser bool.Parse()
lorsque vous êtes certain que votre entrée n'est pas nulle, puisque vous enregistrer vous-même un nul vérifier.
Convert.ToBoolean()
a bien sûr un certain nombre d'autres surcharges qui vous permettent de générer un bool
à partir de nombreux autres types intégrés, alors que Parse()
est string
s seulement.
En termes de type.Parse() méthodes que vous devriez regarder dehors pour, tous les types numériques intégrés ont Parse()
ainsi que TryParse()
méthodes. DateTime
a celles-ci, ainsi que les autres ParseExact()
/TryParseExact()
méthodes qui vous permettent de spécifier un format attendu pour la date.
Voici la courte démo:
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 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
Remarque: Il existe également deux propriétés de bool TrueString et FalseString, mais soyez prudent, car bool.TrueString! = "True", uniquement bool.TrueString == "True"
Console.WriteLine(bool.TrueString); // True
Console.WriteLine(bool.FalseString); // False
Boolean.Parse () convertira une représentation sous forme de chaîne d'une valeur booléenne logique en une valeur booléenne. Convert.ToBoolean () a plusieurs surcharges qui convertiront les types primitifs en leur équivalent booléen.
La plupart des types primitifs de C #, sinon tous, ont une méthode * .Parse / Convert.To * associée qui remplit le même objectif que Boolean.Parse () / Convert.ToBoolean ().
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.