Convertir des.ToBoolean échoue avec “0” valeur

Je suis en train de convertir la valeur "0" ( System.String ) à son Boolean représentation, comme:

var myValue = Convert.ToBoolean("0"); //throwing an exception here

J'ai regardé le Page MSDN, et dans le code-bloc de l'échantillon, j'ai trouvé ces lignes:

ConvertToBoolean("0");
//...
Unable to convert '0' to a Boolean.

Dans mon code, je suis à la conversion à partir de la System.String à Boolean comme ceci:

//will be OK, but ugly code
var myValue = Convert.ToBoolean(Convert.ToInt32("0"));
  • Est-il un autre moyen pour convertir à la Boolean type avec pas laid code?
  • Pourquoi une telle exception se produire? En raison de la conversion à partir de la référence type de System.String pour le type de valeur de la System.Boolean, mais System.Int32 est également un type de valeur, n'est-ce pas?
  • L'exemple de la référence est de montrer qu'il y a des chaînes non valides que les ToBoolean() la méthode de la rejeter. En plus de "0", ils montrent des exemples de "TrueString" et de la chaîne.Vide. L'échantillon est de montrer que ces ne sont pas valides, non pas que vous pouvez réellement utiliser ces valeurs.
  • pourquoi ne pas utiliser le var res="1yestrue".Contient(yourVar)? Il y a aussi des Booléens.Parse() / Boolean.TryParse() ?
InformationsquelleAutor Secret | 2013-04-25