和C#中的操作

时间:2013-09-11 06:37:31

标签: c#

我想执行AND操作。我的输入是2个对象。它可以是类似“true”的字符串,也可以是“1 == 1”之类的表达式。使用&&运算符时,会收到一个异常,即String未被识别为有效的boolean

请帮帮我。

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

对于之前的帖子不太清楚而感到抱歉。

5 个答案:

答案 0 :(得分:3)

"1==1"方法无法将boolean转换为Convert.ToBoolean。它只是转换字符串truefalse

您必须自己编写表达式求值程序,或使用某种库将字符串解析为布尔值(例如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 );