操作符& # 39;祝辞& # 39;不能应用于'bool'和& # 39;bool # 39;

本文关键字:bool 祝辞 操作符 不能 应用于 | 更新日期: 2023-09-27 18:03:34

我已经逆向工程了这个我丢失了源代码的应用程序,并且无法通过构建应用程序时抛出的这个错误。

错误:"Operator '>' cannot be applied to operands of type 'bool' and 'bool' "

this.ListBox1.SelectedIndex = ((-(((this.ListBox1.SelectedIndex == 1) > false) ? 1 : 0)) ? 1 : 0);

,

this.ListBox1.SelectedIndex == 1) > false

任何帮助都会很感激。谢谢!

操作符& # 39;祝辞& # 39;不能应用于'bool'和& # 39;bool # 39;

您的错误信息说明了这一切

操作符'>'不能应用于'bool'和'bool'类型的操作数

在c#中没有布尔值顺序的概念。两个布尔值要么相等,要么不相等。

如果你想要得到

this.ListBox1.SelectedIndex == 1

不为真,用

代替
this.ListBox1.SelectedIndex != 1
例如

this.ListBox1.SelectedIndex = (this.ListBox1.SelectedIndex != 1) ? 0 : 1;

或者更容易读的

this.ListBox1.SelectedIndex = (this.ListBox1.SelectedIndex == 1) ? 1 : 0;

如果选定的索引已经是1,则该代码将使其保持为1,对于任何其他值将其设置为0。

使用

((this.ListBox1.SelectedIndex == 1) != false)