C# 将代码与代码混淆?操作人员

C# 将代码与代码混淆?操作人员,c#,C#,我正在阅读一些人的旧代码,我发现了这一行: menuItem.Checked = (menuItem.Checked == false) ? true : false; 我不明白它是做什么的,怎么做的。有什么帮助吗?你的话的意思是: if(menuItem.Checked == false) menuItem.Checked = true; else menuItem.Checked = false; 您的语句实际上是在菜单项上执行切换效果。如果选中了,则语句将其设置为未

我正在阅读一些人的旧代码,我发现了这一行:

 menuItem.Checked = (menuItem.Checked == false) ? true : false;
我不明白它是做什么的,怎么做的。有什么帮助吗?

你的话的意思是:

if(menuItem.Checked == false)
    menuItem.Checked = true;
else 
    menuItem.Checked = false;
您的语句实际上是在
菜单项上执行切换效果。如果选中了
,则语句将其设置为
未选中
,反之亦然

来自MSDN

条件运算符(?:)返回两个值之一,具体取决于 布尔表达式的值。下面是 条件运算符.m


它被称为三元运算符。它的用法类似于if-else语句,但更简洁。 它被称为三进制,因为它需要三个操作数。
它计算第一个值,然后选择第二个值(如果为真),第三个值(如果为假)。

这是有关它的MSDN文章。它有到其他有用运算符的链接:

这是一种复杂的写入方式:

menuItem.Checked = !menuItem.Checked;

此代码可以替换为以下代码:

menuItem.Checked = !menuItem.Checked;

这相当于:

 menuItem.Checked = !menuItem.Checked;

它被称为三元运算符,一个简单的谷歌搜索提供了关于它如何工作和可能性的大量信息

看一看:

正如人们已经指出的那样,这只是编写简单if语句的一种更短、更简单的方法。

看看
这意味着:


也可以理解为切换菜单项的选中状态。i、 e.menuItem.Checked=!检查菜单项@文强,是的,我相信OP是困惑的?操作人员
 menuItem.Checked = !menuItem.Checked;
if(menuItem.Checked == false)
{
   menuItem.Checked = true;
}
else
{ 
   menuItem.Checked = false;
}