【问题标题】:toggling between two states - the elegant way在两种状态之间切换 - 优雅的方式
【发布时间】:2012-05-08 07:07:56
【问题描述】:

在两种状态之间切换的简单示例:

if (this.lblColorChange.BackColor == Color.Red)
{
    this.lblColorChange.BackColor = Color.Blue;
} 
else
{
    this.lblColorChange.BackColor = Color.Red;
}

它工作正常,但是否有其他方法来编码此切换?可能更短、更优雅的逻辑。

【问题讨论】:

  • 看看我的回答

标签: c# logic


【解决方案1】:

如果 if-else 子句中只有一个语句,那么我们可以删除花括号。 所以你的代码会像

if (this.lblColorChange.BackColor == Color.Red)
    this.lblColorChange.BackColor = Color.Blue;
else
    this.lblColorChange.BackColor = Color.Red;

我们可以使用三元运算符

this.lblColorChange.BackColor = 
          this.lblColorChange.BackColor == Color.Red ? Color.Blue : Color.Red;

如果this不会引起任何冲突,我们也可以从我们的语句中删除它们。

lblColorChange.BackColor = 
                lblColorChange.BackColor == Color.Red ? Color.Blue : Color.Red;

【讨论】:

  • @whytheq:恕我直言,这是编写代码的最简洁方式。
  • 哪个更干净? - 你的方式还是漫长的方式?我可以看到它更短(更漂亮),但为什么它“更干净”
  • @whytheq:编辑了我的答案。请看一下。
猜你喜欢
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 2011-12-28
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多