我是通過某人的舊代碼閱讀,我發現這條線:混淆代碼與?運營商
menuItem.Checked = (menuItem.Checked == false) ? true : false;
我不明白它做什麼,以及如何。任何幫助?
我是通過某人的舊代碼閱讀,我發現這條線:混淆代碼與?運營商
menuItem.Checked = (menuItem.Checked == false) ? true : false;
我不明白它做什麼,以及如何。任何幫助?
你的表態意味着:
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;
它被稱爲三元操作的語法。它被用作if else語句,但更加簡潔。因爲它需要三個操作數,所以稱爲三元組。 它評估第一個,然後選擇第二個,如果爲true,則選擇第三個。
這是關於它的MSDN文章。它鏈接到其他有用的運營商:http://msdn.microsoft.com/en-us/library/ty67wk28.aspx
這是寫一個複雜的方式:這可以用下面的代碼來代替
menuItem.Checked = !menuItem.Checked;
:
menuItem.Checked = !menuItem.Checked;
這是等價的:
menuItem.Checked = !menuItem.Checked;
它被稱爲三元操作符和一個簡單的谷歌搜索提供了很好的信息ñ關於這是如何工作和可能性。
請看:https://www.google.com/search?q=Ternary+Operators+c%23
正如人們已經指出的那樣,這僅僅是一個編寫簡單的if語句更短,更簡單的方法。
在Conditional Operator: ? :
看一看這意味着:
if(menuItem.Checked == false)
{
menuItem.Checked = true;
}
else
{
menuItem.Checked = false;
}
它也可以被理解爲切換菜單項的選中狀態。即menuItem.Checked =!menuItem.Checked; – wenqiang
@文強,是的,我相信OP很困惑?操作者 – Habib