1

我想进行AND手术。我的输入是 2 个对象。它可以是像“true”这样的字符串,也可以是像“1==1”这样的表达式。使用&&运算符时,我得到一个 String 未被识别为有效的异常boolean

请帮我。

return Convert.ToBoolean(obj[0]) && Convert.ToBoolean(obj[1]);

很抱歉之前的帖子不够清楚。

4

5 回答 5

3

该方法无法转换"1==1"为 a 。它只是转换字符串和.booleanConvert.ToBooleantruefalse

您将不得不自己编写一个表达式评估器,或者使用某种库将您的字符串解析为布尔值(例如Flee

于 2013-09-11T06:40:13.373 回答
1

首先确保 obj[0], obj[1] 将只包含 1 或 0(字符或整数)。因为 Convert.ToBoolean 不理解 1 或 0 以外的任何内容。

于 2013-09-11T08:19:59.773 回答
0

下面的一个将工作

Convert.ToBoolean(true) && Convert.ToBoolean(1==1)
于 2013-09-11T06:42:03.013 回答
0

为什么要使用字符串?转换不会评估代码,它将检查提供的数据是否可以转换为布尔值,并在可能的情况下这样做。

如果您的函数正在工作,它将始终返回 true,因为 1 始终等于 1,并且 true 始终为 true。

于 2013-09-11T06:42:58.713 回答
-1

这几乎是不可能的,因为 C# 是强类型语言。你想要做的是弱类型语言,比如 JS。"1==1"适用于 JS,不适用于 C#。删除引号以使其工作(您不妨删除第一个操作数,因为它没有任何意义):

return ( 1 == 1 );
于 2013-09-11T06:39:37.203 回答