三元运算符,以最小化代码

时间:2013-03-24 04:45:26

标签: c#

如何使用三元运算符

最小化以下代码
if (toolButtonState.New == 1)
    ts.Items["tsbNew"].Enabled = true;
else
    ts.Items["tsbNew"].Enabled = false;

请提供实施

2 个答案:

答案 0 :(得分:6)

您不需要ternary operator。您可以像这样简化它:

ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1);

从技术上讲,你可以使用这样的三元运算符,但没有理由:

ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1) ? true : false;

通常情况下,如果?:之后的表达式不仅仅评估为truefalse,则三元表达式更有用,例如以下内容: / 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);