В чем разница между Convert.ToBoolean (строка) и Boolean.Разбор (строка)?
в чем разница между двумя методами
Convert.ToBoolean()
и
Boolean.Parse()
?
есть ли причина, чтобы использовать один или другой?
кроме того, есть ли другие type.Parse()
методы, которые я должен остерегаться?
спасибо,
матовая
3 ответа:
Convert.ToBoolean(string)
на самом деле называетbool.Parse()
в любом случае, для не-nullstring
s, нет никакой функциональной разницы. (Для nullstring
s,Convert.ToBoolean()
возвращаетfalse
, тогда какbool.Parse()
выдаетArgumentNullException
.)учитывая этот факт, вы должны использовать
bool.Parse()
когда вы уверены, что ваш ввод не равен нулю, так как вы сохраняете одну нулевую проверку.
Convert.ToBoolean()
конечно, есть ряд других перегрузок, которые позволяют генерироватьbool
от многих других встроенных типов, в то время какParse()
наstring
только s.С точки зрения типа.Parse () методы, которые вы должны искать, все встроенные числовые типы имеют
Parse()
а такжеTryParse()
методы.DateTime
эти, а также дополнительныеParseExact()
/TryParseExact()
методы, которые позволяют определить ожидаемый формат для даты.
вот короткая демонстрация:
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
Примечание: есть также два свойства bool TrueString и FalseString, но будьте осторожны, потому что bool.Правда != "true", только bool.TrueString = = "True"
Console.WriteLine(bool.TrueString); // True Console.WriteLine(bool.FalseString); // False
Boolean.Parse()
преобразует строковое представление логического логического значения в логическое значение.Convert.ToBoolean()
несколько перегрузок это преобразует примитивные типы в их логический эквивалент.большинство, если не все, примитивных типов в C# имеют связанный *.Parse/Convert.To* метод, который служит той же цели, что и
Boolean.Parse()/Convert.ToBoolean()
.