3

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

 menuItem.Checked = (menuItem.Checked == false) ? true : false;

我不明白它的作用和方式。有什么帮助吗?

4

8 回答 8

9

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

menuItem.Checked = !menuItem.Checked;
于 2012-06-01T07:32:28.100 回答
4

你的说法意味着:

if(menuItem.Checked == false)
    menuItem.Checked = true;
else 
    menuItem.Checked = false;

您的声明实际上是对menuItem. 如果是,Checked则语句​​将其设置为UnChecked,反之亦然

来自 MSDN ?:运算符(C# 参考)

条件运算符 (?:) 根据布尔表达式的值返回两个值之一。以下是条件 operator.m 的语法

condition ? first_expression : second_expression;


于 2012-06-01T07:30:46.170 回答
4

看一下条件运算符:? :
这意味着:

if(menuItem.Checked == false)
{
   menuItem.Checked = true;
}
else
{ 
   menuItem.Checked = false;
}
于 2012-06-01T07:34:31.480 回答
3

这可以用以下代码替换:

menuItem.Checked = !menuItem.Checked;
于 2012-06-01T07:33:05.313 回答
3

这相当于:

 menuItem.Checked = !menuItem.Checked;
于 2012-06-01T07:33:08.980 回答
2

它被称为三元运算符,简单的 Google 搜索提供了有关其工作原理和可能性的大量信息。

看看:https ://www.google.com/search?q=Ternary+Operators+c%23

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

于 2012-06-01T07:33:25.623 回答
2

这是关于它的 MSDN 文章。它具有其他有用运算符的链接:http: //msdn.microsoft.com/en-us/library/ty67wk28.aspx

于 2012-06-01T07:32:25.640 回答
0

它被称为三元运算符。它像 if else 语句一样使用,但更简洁。它被称为三元,因为它需要三个操作数。它评估第一个,然后如果为真则选择第二个,如果为假则选择第三个。

于 2012-06-01T07:31:49.610 回答