使用switch语句C#不能将常量值转换为'bool'

时间:2014-08-05 12:49:16

标签: c# boolean switch-statement syntax-error case-statement

当我尝试评估SelectedIndexCheckBoxList的{​​{1}}时。我在C#的switch语句中收到了关于case的错误。错误是bool。有没有办法可以在switch语句中进行评估?我知道我可以使用if语句,但如果可以,我宁愿使用switch语句。

这是我的代码:

Constant value '0' cannot be converted to a 'bool'

3 个答案:

答案 0 :(得分:3)

由于switch中的唯一值可以是truefalse,因此请删除case 0

或者,您最好使用if

if (CBL_PO.SelectedIndex == 0 && boolIsNotValid)
{ }
else
{ }

因为我认为您可能会尝试检查switch中的两个值:不可能。这是您的最佳选择:

switch (CBL_PO.SelectedIndex)
{
    case 0:
    {
        if (boolIsNotValid)
        { }
        else
        { }

        break;
    }
}

答案 1 :(得分:1)

可以将switch语句视为if / else语句堆栈的替代。如果您正在进行单个比较,那么使用简单的if语句;开关有点矫枉过正。

if (CBL_PO.SelectedIndex == 0 && boolIsNotValid)
{
  // Do something
}

答案 2 :(得分:0)

如果你真的想使用switch语句,那么你需要:

switch ((CBL_PO.SelectedIndex == 0) && (boolIsNotValid == true))
    {
        case true:
           //Do Something
           break;
        case false:
           //Do Something else
           break;
    }