c# . net框架3.5 -系统.FormatException:字符串未被识别为有效的布尔值
本文关键字:识别 有效 布尔值 字符串 框架 net FormatException 系统 | 更新日期: 2023-09-27 18:16:13
我有以下问题,并尝试了多种变化,试图解决这个问题:
bool selectOnlyPublished = Convert.ToBoolean((CMSContext.ViewMode == ViewModeEnum.LiveSite).ToString().ToLower());
TreeNode blogNode = BlogHelper.GetParentBlog(aliasPath, CMSContext.CurrentSiteName, selectOnlyPublished);
,但它仍然抛出:System。FormatException:字符串未被识别为有效的布尔值。错误。
我试过以下方法:
- Boolean.Parse ()
- Boolean.Parse (string.ToLower ())
- 甚至硬编码布尔类型的值
但是他们都给了我相同的错误。
为什么不这样做呢:
bool selectOnlyPublished = CMSContext.ViewMode == ViewModeEnum.LiveSite;
TreeNode blogNode = BlogHelper.GetParentBlog(
aliasPath, CMSContext.CurrentSiteName, selectOnlyPublished);
为什么要将CMSContext.ViewMode == ViewModeEnum.LiveSite
的结果转换为bool?该代码的结果将已经是bool类型。你可以这样做:
bool selectOnlyPublished = CMSContext.ViewMode == ViewModeEnum.LiveSite;
回答你最初的问题,Convert.ToBoolean
的结果是
如果value等于TrueString为true,如果value等于false string或null为false。
TrueString
为True
, FalseString
为False
。取下字符串上的ToLower
,它应该正确解析。
如果你尝试
TreeNode blogNode = BlogHelper.GetParentBlog(
aliasPath, CMSContext.CurrentSiteName,
(CMSContext.ViewMode == ViewModeEnum.LiveSite)
);
我假设CMSContext的数据类型。ViewMode是ViewModeEnum?
为什么首先要解析布尔值
bool selectOnlyPublished = (CMSContext.ViewMode == ViewModeEnum.LiveSite);
应该做这项工作