当我尝试评估SelectedIndex
和CheckBoxList
的{{1}}时。我在C#的switch语句中收到了关于case的错误。错误是bool
。有没有办法可以在switch语句中进行评估?我知道我可以使用if语句,但如果可以,我宁愿使用switch语句。
这是我的代码:
Constant value '0' cannot be converted to a 'bool'
答案 0 :(得分:3)
由于switch
中的唯一值可以是true
或false
,因此请删除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;
}