【发布时间】:2013-04-18 19:08:51
【问题描述】:
我正在尝试将值 "0" ( System.String ) 转换为其 Boolean 表示形式,例如:
var myValue = Convert.ToBoolean("0"); // throwing an exception here
我查看了MSDN page,在代码示例块中,我发现了以下几行:
ConvertToBoolean("0");
// ...
Unable to convert '0' to a Boolean.
在我的代码中,我正在从 System.String 转换为 Boolean,如下所示:
// will be OK, but ugly code
var myValue = Convert.ToBoolean(Convert.ToInt32("0"));
- 有没有其他方法可以转换成
Boolean类型而不用那么难看的代码? - 为什么会出现这样的异常?因为从引用类型
System.String转换为值类型System.Boolean,但是System.Int32也是值类型不是吗?
【问题讨论】:
-
您引用的示例表明存在 ToBoolean() 方法将拒绝的无效字符串。除了“0”之外,它们还显示了“TrueString”和 string.Empty 的示例。该示例显示这些是无效的,而不是您可以实际使用这些值。
-
为什么不使用 var res="1yestrue".Contains(yourVar)?还有 Boolean.Parse() / Boolean.TryParse() ?
-
只需使用
Convert.ToInt32("0") > 0即可获得 bool 。
标签: c# types reference value-type type-conversion