代码之家  ›  专栏  ›  技术社区  ›  Marko

完整if/else语句与条件运算符[重复]

  •  2
  • Marko  · 技术社区  · 14 年前


    Benefits of using the conditional ?: (ternary) operator
    Is the conditional operator slow?

    关于不同的if/else语句,我有一个非常简单的问题。

    在使用它时,是否有性能提高、编译代码减少或其他任何对我有利的东西?

    谢谢你的帮助

    马尔科

    2 回复  |  直到 7 年前
        1
  •  5
  •   Jon Skeet    14 年前

    不要把注意力集中在 写作 可读的 .

    有时 if 语句将更具可读性。有时条件运算符的可读性更高。我喜欢条件运算符,在有意义的情况下,用不同的方法计算一个逻辑值(例如,基于客户年龄的折扣)。不过,我不喜欢用复杂的方式使用它——在有意义的地方使用完整的if/else没有什么错。

    string shipTo = customer.ShippingAddress != null 
                  ? customer.ShippingAddress : customer.BillingAddress;
    

    你可以用

    string shipTo = customer.ShippingAddress ?? customer.BillingAddress;
    

        2
  •  1
  •   Thomas Levesque    14 年前

    更好的可读性,在某些情况下。。。我想就这些。

    在使用它的时候,有没有性能提高,编译代码减少,或者其他任何对我有好处的东西?

    所以最终,你的选择只能基于可读性。当写一个完整的if/else更有可读性时,就这样做。如果这是一个非常简单的三元表达式,很容易阅读,就去吧。