完整的if / else语句与条件运算符

时间:2010-09-01 21:20:00

标签: c# if-statement ternary-operator conditional-operator

  

可能重复:
  Benefits of using the conditional ?: (ternary) operator
  Is the conditional operator slow?

大家好,

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

除了编写更少的代码之外,使用条件运算符而不是完整的if / else语句还有其他好处吗?

是否有性能提升,编译代码减少,或者在使用时有什么好处?

感谢您的帮助

马尔科

2 个答案:

答案 0 :(得分:5)

不要专注于编写更少的代码......专注于您最终可以使用可读的代码。

有时,if语句更具可读性。有时条件运算符更具可读性。在计算一个逻辑值的不同方式(例如基于客户年龄的折扣)方面,我喜欢条件运算符。我不喜欢以复杂的方式使用它 - 使用完整的if / else没有任何问题。

值得记住null-coalescing运算符...所以代替:

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

你可以使用

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

同样,它仅在某些情况下有用 - 但在这些情况下它非常方便。

答案 1 :(得分:1)

  

除了编写更少的代码之外,使用Ternary运算符而不是完整的if / else语句还有其他好处吗?

更好的可读性,在某些情况下......我认为这就是全部。

  

在使用它时,是否有性能提升,编译代码减少或其他任何有益于我的事情?

不,没什么大不了的。我认为它通常会编译成相同的IL ...

所以最终,你应该只根据可读性做出选择。如果编写完整的if / else更具可读性,那就去做吧。如果它是一个非常简单的三元表达式,易于阅读,那就去吧。