欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » C# » 正文

热门阅读

无法将类型"string"隐式转换为"bool"分析

创建时间:2011年11月12日 20:53  阅读次数:(18073)
分享到:
好吧,我承认,这只是用来凑数的一篇文章,因为这个问题太简单了,但又因为最近有好几个同学在群中问到该问题,所以就出来了这么一篇。

回到正题--
string是引用类型,虽然在C#中把它当值变量一样用,但我们要知道,它的确是引用类型,只是它用的比较特别多,所以C#把它特殊处理了。
bool是值类型,其值只能是true与false。

如果非要将string类型转换为bool类型,那么也只能将"true"与"false"通过bool.Parse()或Convert.ToBoolean()来转换。换句话说,string字符串中除了"true"与"false",其它都不可以转换为bool类型,当然"true"与"false"不限大小写。

如下:
string str= "true";
bool b = bool.Parse(str);
bool c = Convert.ToBoolean(str);

都可以转换成功,但如果将其它字符串作同样转换,如
string str= "abc";
bool b = bool.Parse(str);
bool c = Convert.ToBoolean(str);

则会报错:该字符串未被识别为有效的布尔值
堆栈跟踪: 
[FormatException: 该字符串未被识别为有效的布尔值。]
   System.Boolean.Parse(String value) +7663730
   System.Convert.ToBoolean(String value) +11
   WebApplication3._Default.Page_Load(Object sender, EventArgs e) in E:\WebApplication3\WebApplication3\Default.aspx.cs:17
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

希望再有问这个问题的童鞋们,认真的学习一下C#基础。
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 18+32=? 的结果(结果是:50)
结  果: