C#中 ,我用“||”表示“或”,但是出现了运算符“||”无法应用于“bool”和“int”类型的操作数

如题所述

在C#中 int类型的非零已经不再表示逻辑真,零也不再表示逻辑假,因此int型已经不再作为逻辑值来参与逻辑表达式。“||” 左右只能是逻辑表达式!
所以,如果想判断x不等于零或y等于零,应当用
if (x!=0 || y==0)来进行,而不是 if (x || !y)追问

不是这样的

追答

Operator '||' cannot be applied to operands of type 'bool' and 'int' (CS0019) 是这个错误提示吧!
你的表达式“||”左边是个bool类型,右边是个int类型,我上面已经说了,int类型已经不再作为逻辑值参与逻辑运算了(C/C++中是可以的,0表示false,1表示true)。
你说不是这样,你试过了吗?
举个例子:
int i=1;
bool x=true;
if (x || i) ... //在C/C++中是合法的,在C#中“||”右边是个整型,而不是逻辑值,是不能编译的
if (x || i==1) ... //这才是C#中的正确写法,这样左右两边都是逻辑表达式

或者你把代码贴上来,大家帮你分析。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-09
只能说明你有个地方判断的时候 返回值不是一个bool值
第2个回答  2012-10-09
求代码
第3个回答  2012-10-10
基本可以认为把==写出来=了,你检查一下||后面
相似回答