如何使用三元运算符
最小化以下代码if (toolButtonState.New == 1)
ts.Items["tsbNew"].Enabled = true;
else
ts.Items["tsbNew"].Enabled = false;
请提供实施
答案 0 :(得分:6)
您不需要ternary operator。您可以像这样简化它:
ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1);
从技术上讲,你可以使用这样的三元运算符,但没有理由:
ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1) ? true : false;
通常情况下,如果?
和:
之后的表达式不仅仅评估为true
和false
,则三元表达式更有用,例如以下内容: / p>
someControl.ForeColor = (toolButtonState.New == 1) ? Color.Red : Color.Black;
请记住,如果表达式不仅仅是简单的单行,那么如果您只是坚持使用过时的if/else
语句和大括号,那么您的代码可能会更具可读性。
答案 1 :(得分:1)
ternary operator的格式为:
(condition) ? (if true) : (if false)
因此,您的代码中的三元组将转入:
ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1) ? true : false;
您会注意到,if true值为true
,if false值为false
。您可以简单地删除三元语句,并通过将.Enabled
设置为条件的结果来执行相同的操作:
ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1);