我正在阅读某些旧代码,我找到了这一行:
menuItem.Checked = (menuItem.Checked == false) ? true : false;
我不明白它的作用和方式。有什么帮助吗?
答案 0 :(得分:9)
这是一种复杂的写作方式:
menuItem.Checked = !menuItem.Checked;
答案 1 :(得分:4)
您的陈述意味着:
if(menuItem.Checked == false)
menuItem.Checked = true;
else
menuItem.Checked = false;
您的陈述实际上是对menuItem
进行切换效果。如果是Checked
,则语句将其设置为UnChecked
,反之亦然
来自MSDN ?: Operator (C# Reference)
条件运算符(?:)根据需要返回两个值中的一个 布尔表达式的值。以下是该语法 条件operator.m
condition ? first_expression : second_expression;
答案 2 :(得分:4)
看看Conditional Operator: ? :
这意味着:
if(menuItem.Checked == false)
{
menuItem.Checked = true;
}
else
{
menuItem.Checked = false;
}
答案 3 :(得分:3)
可以使用以下代码替换它:
menuItem.Checked = !menuItem.Checked;
答案 4 :(得分:3)
这相当于:
menuItem.Checked = !menuItem.Checked;
答案 5 :(得分:2)
这是关于它的MSDN文章。它包含指向其他有用运算符的链接:http://msdn.microsoft.com/en-us/library/ty67wk28.aspx
答案 6 :(得分:2)
它被称为三元运算符,一个简单的谷歌搜索提供了有关其如何工作和可能性的很好的信息。
看看:https://www.google.com/search?q=Ternary+Operators+c%23
正如人们已经指出的那样,这只是编写简单if语句的一种更简单,更简单的方法。
答案 7 :(得分:0)
它被称为三元运算符。它像if else语句一样使用但更精简。 它被称为三元组,因为它需要三个操作数。 它评估第一个,然后选择第二个如果为真,第三个如果为假。