运算符'||'不能应用于'object'和'bool'类型的操作数

时间:2018-09-28 09:13:03

标签: c# combobox type-conversion operands

我想比较:
ComboBox.SelectedItem,它是字符串的对象类型。空值与“ ||”组合

如果使用上述命令运行,则会出现错误:

  

“运算符'||'不能应用于'object'类型的操作数,并且   '布尔'“

代码

if (comboBox2.SelectedItem || comboBox1.SelectedItem == string.Empty )

3 个答案:

答案 0 :(得分:3)

尝试一下:

if ((comboBox1.SelectedItem?.Equals(string.Empty) ?? false)
    || (comboBox2.SelectedItem?.Equals(string.Empty) ?? false))

答案 1 :(得分:1)

尝试

if((comboBox1.SelectedItem==null || comboBox1.SelectedItem == string.Empty) || (comboBox2.SelectedItem == null || comboBox2.SelectedItem == string.Empty))
{
     MessageBox.Show("Select Item!");
}

答案 2 :(得分:0)

您无法比较布尔值和对象(组合框的选定项) 根据@ThierryV答案,您可以定义一个函数来检查您的状况:

private bool CheckEmptyComboBox(ComboBox comboBox)
{
    return (comboBox.SelectedItem==string.Empty ?? false)
}

,然后应在if语句条件中使用此功能:

if( CheckEmptyComboBox(comboBox1) || CheckEmptyComboBox(comboBox2) || CheckEmptyComboBox(comboBox3) ...)

您还可以使用foreach语句在面板或组框中找到所有组合框