如果组合框选择索引== 1 ||则该语句 2给出了c#中的语法错误

Dil*_*n V 1 c# winforms

我正在制作人类到动物年的转换器.

我的代码:

if (comboBox2.SelectedIndex == 1 || 2)
{
   comboBox3.Visible = true;
} 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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

P5C*_*der 7

问题:您的if情况,您认为可以解决:

comboBox2.SelectedIndex == 1 || comboBox2.SelectedIndex == 2
Run Code Online (Sandbox Code Playgroud)

实际上解决了:

(comboBox2.SelectedIndex == 1) || (2)
Run Code Online (Sandbox Code Playgroud)

原因:等于运算符(==)的优先级高于条件OR运算符(||).

更多信息: MSDN:C#运营商优先级和关联性

第一部分(comboBox2.SelectedIndex == 1) || (2)返回类型的值,bool而第二部分返回类型int.

因此错误:

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

解决方案:您应明确说明条件:

comboBox2.SelectedIndex == 1 || comboBox2.SelectedIndex == 2
Run Code Online (Sandbox Code Playgroud)


小智 6

你不能像这样使用上面的表达式

if (comboBox2.SelectedIndex == 1 || 2)
{
   comboBox3.Visible = true;
}
Run Code Online (Sandbox Code Playgroud)

您必须以下列方式使用它:

if (comboBox2.SelectedIndex == 1 || comboBox2.SelectedIndex == 2 )
{
   comboBox3.Visible = true;
} 
Run Code Online (Sandbox Code Playgroud)