Próbuję przekonwertować wartość "0"
(System.String
) do jego Boolean
reprezentacji, jak:Convert.ToBoolean nie powiedzie się z „0” wartości
var myValue = Convert.ToBoolean("0"); // throwing an exception here
Szukałem na MSDN page, a w kodzie -sample blok, znalazłem te linie:
ConvertToBoolean("0");
// ...
Unable to convert '0' to a Boolean.
W moim kodu, mam konwersji z System.String
do Boolean
tak:
// will be OK, but ugly code
var myValue = Convert.ToBoolean(Convert.ToInt32("0"));
- Czy istnieje inny sposób konwersji na typ
Boolean
bez takiego paskudnego kodu? - Dlaczego występuje taki wyjątek? Z powodu konwersji z typu odniesienia
System.String
na typ wartościSystem.Boolean
, aleSystem.Int32
jest również typem wartości, nieprawdaż?
Przykład odwołać się pokazując, że są nieprawidłowe ciągi metoda ToBoolean() odrzuci. Oprócz "0", pokazują przykłady "TrueString" i string.Empty. Próbka pokazuje, że są one nieważne, a nie, że możesz faktycznie użyć tych wartości. –
dlaczego nie używać var res = "1yestrue" .Contains (yourVar)? Istnieją również Boolean.Parse()/Boolean.TryParse()? – Bernhard