我如何使用三元操作三元操作,以儘量減少代碼
if (toolButtonState.New == 1)
ts.Items["tsbNew"].Enabled = true;
else
ts.Items["tsbNew"].Enabled = false;
請提供一個實現
我如何使用三元操作三元操作,以儘量減少代碼
if (toolButtonState.New == 1)
ts.Items["tsbNew"].Enabled = true;
else
ts.Items["tsbNew"].Enabled = false;
請提供一個實現
你不需要ternary operator最小化下面的代碼。你可以把它簡化這樣的:
ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1);
從技術上講,你可以使用一個三元運算符這樣的,但沒有理由:
ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1) ? true : false;
通常情況下,三元表達式更加有用的,如果表達式後在?
和:
不要簡單地計算爲true
和false
,如下列要求:
someControl.ForeColor = (toolButtonState.New == 1) ? Color.Red : Color.Black;
請記住,如果表達式不僅僅是一個簡單的單行表達式,而且您的代碼可能更具可讀性,如果您只是使用陳舊的if/else
陳述和花括號。
的ternary operator的形式爲:
(condition) ? (if true) : (if false)
所以在你的代碼的三元將上交至:
ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1) ? true : false;
你會發現,雖然該如果真值是true
和如果虛假值是false
。你可以簡單地刪除三元聲明,它會通過設置.Enabled
的條件的結果做同樣的事情:
ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1);
有你爲什麼認爲有必要更改此代碼什麼特別的原因?如果你想要改進工作代碼,你應該發佈到http://codereview.stackexchange.com/ – 2013-03-24 04:56:02