将bool转换为int?

时间:2012-04-22 22:13:36

标签: c# operands

我有这个代码,我不明白为什么我不能使用运算符||在这个例子中。

“运营商'||'不能应用于'bool'和'int'类型的操作数“

我错过了什么吗?这个布尔值在哪里?

int i = 1;                            
if ( i == 1)
{
    Response.Write("-3");
}
else if (i == 5 || 3) //this is the error, but where is the bool?
{
    Response.Write("-2");
}

3 个答案:

答案 0 :(得分:3)

您需要将x与y和/或x与z进行比较,在大多数语言中不允许将x与(y或z)进行比较。添加“3”(即int)时引入了bool。编译器认为你想要(i == 5)|| (3)哪个不起作用,因为3不会自动转换为bool(除了可能在JavaScript中)。

int i = 1;                            
        if ( i == 1)
        {
            Response.Write("-3");
        }


        else if (i == 5 || i == 3) //this is the error, but where is the bool?
        {
            Response.Write("-2");
        }

答案 1 :(得分:2)

您还可以使用switch语句。案例3和5是相同的 实施例

int i = 1;

        switch (i)
        {
            case 1:
                Response.Write("-3");
                break;
            case 3:
            case 5:
                Response.Write("-2");
                break;
        }

希望这有助于

答案 2 :(得分:1)

您收到错误的原因是您尝试对未解析为布尔方程式的某些内容执行布尔值评估:

if (false || 3)

这里'3'不评估布尔方程。

如果您要将其更改为

if (false || 3 == 3)

然后你会发现它会起作用。