我想执行AND
操作。我的输入是2个对象。它可以是类似“true”的字符串,也可以是“1 == 1”之类的表达式。使用&&
运算符时,会收到一个异常,即String未被识别为有效的boolean
。
请帮帮我。
return Convert.ToBoolean(obj[0]) && Convert.ToBoolean(obj[1]);
对于之前的帖子不太清楚而感到抱歉。
答案 0 :(得分:3)
"1==1"
方法无法将boolean
转换为Convert.ToBoolean
。它只是转换字符串true
和false
。
您必须自己编写表达式求值程序,或使用某种库将字符串解析为布尔值(例如Flee)
答案 1 :(得分:1)
首先确保obj [0],obj [1]只包含1或0(char或整数)。 因为Convert.ToBoolean不理解除1或0以外的任何内容。
答案 2 :(得分:0)
以下一个将起作用
Convert.ToBoolean(true) && Convert.ToBoolean(1==1)
答案 3 :(得分:0)
为什么要使用字符串? 转换不会评估代码,它会检查提供的数据是否可以转换为bool并尽可能这样做。
如果函数正常工作,则函数将始终返回true,因为1始终等于1,而true始终为真。
答案 4 :(得分:-1)
这几乎是不可能的,因为C#是强类型语言。
你想要做的是弱类型语言,如JS。 "1==1"
适用于JS,而不适用于C#。
删除引号以使其工作(您可能还要删除第一个操作数,因为它没有任何意义):
return ( 1 == 1 );