我正在阅读某人的旧代码,发现这一行:
menuItem.Checked = (menuItem.Checked == false) ? true : false;
我不明白它的作用和方式。有什么帮助吗?
我正在阅读某人的旧代码,发现这一行:
menuItem.Checked = (menuItem.Checked == false) ? true : false;
我不明白它的作用和方式。有什么帮助吗?
这是一种复杂的编写方式:
menuItem.Checked = !menuItem.Checked;
你的说法意味着:
if(menuItem.Checked == false)
menuItem.Checked = true;
else
menuItem.Checked = false;
您的声明实际上是对menuItem
. 如果是,Checked
则语句将其设置为UnChecked
,反之亦然
来自 MSDN ?:运算符(C# 参考)
条件运算符 (?:) 根据布尔表达式的值返回两个值之一。以下是条件 operator.m 的语法
condition ? first_expression : second_expression;
看一下条件运算符:? :
这意味着:
if(menuItem.Checked == false)
{
menuItem.Checked = true;
}
else
{
menuItem.Checked = false;
}
这可以用以下代码替换:
menuItem.Checked = !menuItem.Checked;
这相当于:
menuItem.Checked = !menuItem.Checked;
它被称为三元运算符,简单的 Google 搜索提供了有关其工作原理和可能性的大量信息。
看看:https ://www.google.com/search?q=Ternary+Operators+c%23
正如人们已经指出的那样,这只是编写简单 if 语句的一种更短、更简单的方法。
这是关于它的 MSDN 文章。它具有其他有用运算符的链接:http: //msdn.microsoft.com/en-us/library/ty67wk28.aspx
它被称为三元运算符。它像 if else 语句一样使用,但更简洁。它被称为三元,因为它需要三个操作数。它评估第一个,然后如果为真则选择第二个,如果为假则选择第三个。